【发布时间】:2012-10-25 18:48:36
【问题描述】:
我知道这个非常相似的问题已经被问过很多次了,比如Comparing two collections for equality irrespective of the order of items in them,但我正在尝试使用我正在阅读的解决方案,但有些东西不起作用......这必须是我犯了一个愚蠢的错误......请帮忙!
好的,这是我的场景,假设我在代码中创建了以下 3 个列表:
Dim lst1 as new list(of integer)
Dim lst2 as new list(of integer)
Dim lst3 as new list(of integer)
然后,在代码中,我最终得到了列表中的以下值:
lst1: lst2: lst3:
1 1 2
2 2 3
3 3 4
4 4 5
所以,很明显,lst1 和 lst2 相等,而 lst1 和 lst3 不相等,但是我可以在 if 语句中写入什么代码来验证这一点?
我试过了:
lst1.SequenceEqual(lstXX)
对于 lst2 和 lst3 返回 True 我试过了:
lst1.Equals(lstXX)
这对于 lst2 和 lst3 都返回 False
现在,我知道我可以通过比较计数和 lst1.Except(lstXX) 的代码来做到这一点,但我想知道更多,所以我在这里做错了什么,更重要的是,最有效的方法是什么这个??
谢谢!!!
【问题讨论】:
-
请使用
SequenceEqual显示您的代码 - 它应该做正确的事情。我怀疑你误诊了。 -
我的代码就是这么简单: - If PathToStartDateForLinking(i).SequenceEqual(PathToStartDateForLinking(j)) Then 其中两个被检查的都是列表(整数)如问题中所述...
-
lst1.SequenceEqual(lst3)永远不会返回 true。检查您的代码。 -
更具体地说,我将 PathToStartDateForLinking 作为 List(Of list(of Integer))
-
请展示一个简短但完整的程序,其中包含您在此处显示的列表,以便
lst1.SequenceEqual(lst3)返回 true。