我有两个列表,我认为它们是 equal 并且在相同的序列中,但是当我运行SequenceEqual()
时,它返回false
。
// For brevity’s sake assume the two-list data is as follows
List<string> list1 = new List<string> {"1", "2", "3"};
List<string> list2 = new List<string> {"1", "2", "3"};
list1.SequenceEqual(list2); // returning false
list1.Except(list2).Count(); // returning 0
list2.Except(list1).Count(); // returning 0
实际上,我的列表数据要大得多(~ 8000
项),但我很困惑,为什么Except().Count()
和SequenceEqual()
都得到0,而SequenceEqual()
得到false?
编辑:将Count
添加到Except
示例中。
1条答案
按热度按时间svdrlsy41#
你做 * 不同 * 的比较。至于
Except
吧这就是为什么
当且仅当序列顺序相同且重复时,
SequenceEqual
返回true
。在上面的例子中,SequenceEqual
返回false
,因为list1.Count != list2.Count
,list1[0] != list2[0]
等。