我想比较两个整数列表是否相等。如果事先对它们进行排序可以使操作更加容易,请排序。下面是我想要比较的两个列表的示例。对于下面的内容,我希望结果为true。
注意:列表中永远不会有重复项(没有重复值)。
List<int> list = new List<int>(){1, 4,6,7};
int[] myArray = new int[]{1, 6,7 ,4};
SequenceEqual()
方法。bool areEqual = listA.SequenceEqual( listB );
如果列表不是按相同的顺序排列,您可以先对它们进行排序:bool areEqual = listA.OrderBy(x=>x).SequenceEqual( listB.OrderBy(x=>x) );
如果列表中可能包含重复项,而这些重复项在相等性方面并不重要,则可以使用集合比较:
bool setEqual = new HashSet<int>( listA ).SetEquals( listB );
如果重复项不重要,并且您想避免比较的开销(排序、构建哈希集等等),您可以首先比较两个集合的大小,只有在它们相同的情况下才进行比较。
看起来您想将它们作为集合进行比较...这种情况下:
HashSet<int> hashSet = new HashSet<int>(list);
if (hashSet.SetEquals(myArray))
{
...
}
{ 1, 4, 6, 7 }
是否等于{ 1, 4, 4, 6, 7 }
? - jasonHashSet<T>
。这样可以更清晰地表达您的意图。 - nawfal