【发布时间】:2013-07-22 12:26:25
【问题描述】:
如何检测两个给定列表的项目是否相等?
Dim list1 As New List(Of Integer)
list1.AddRange({1, 2, 3})
Dim list2 As New List(Of Integer)
list2.AddRange({3, 2, 1})
如果我使用SequenceEqual 比较它们,我会得到False,因为项目的顺序不一样。但是,我如何先对它们进行比较而不对它们进行排序?
编辑:请注意这应该尊重重复项,例如 {1, 2, 3, 1} 与 {1, 2, 3} 不同(项目 1 在第一个列表中出现两次)。
【问题讨论】:
-
循环遍历其中一个列表并检查另一个列表是否包含该元素。还要检查列表的长度是否相同。
-
为什么先“不排序”?听起来是个不错的选择。
-
@SysDragon:听起来不错,是的,但是如果您想保留列表中的顺序怎么办?但这导致我最终实现了 :-)
标签: vb.net list generics comparison