我刚刚发现Except()它将第二个列表中的所有元素从第一个列表中删除,但是它还具有使返回结果中的所有元素与众不同的效果。
Except()
我正在使用的简单方法是 Where(v => !secondList.Contains(v))
Where(v => !secondList.Contains(v))
谁能向我解释为什么会这样,如果可以的话,请指向解释此问题的文档?
该Except函数的文档指出:
Except
通过使用默认的相等比较器比较值来产生两个序列的集合差异。 两组的组差异定义为第一组中没有出现在第二组中的成员。
通过使用默认的相等比较器比较值来产生两个序列的集合差异。
两组的组差异定义为第一组中没有出现在第二组中的成员。
这里的重要词是 set ,其定义为:
可以存储某些值而没有任何特定顺序且没有重复值的抽象数据结构
因为Except已记录为基于集合的操作,所以它还具有使结果值与众不同的效果。