List1包含项目{A,B},列表2包含项目{A,B,C}.
当我使用Except Linq扩展名时,我需要返回{C}相反,我会返回{A,如果我在我的表达式中翻转列表,结果是{A,C}.
我是否误解了除此之外?有没有另外一个扩展我看不到使用?
目前为止,我已经看过并尝试了不少关于这件事的不同职位.
var except = List1.Except(List2); //这是我到目前为止的那一行
编辑:是的,我正在比较简单的对象.我从来没有使用IEqualityComparer,有趣的是要了解.
感谢所有的帮助.问题没有实现比较者.链接的博客文章和下面的示例在哪里有帮助.
如果您在列表中存储引用类型,则必须确保有一种
方法来比较对象的相等性.否则,如果它们引用相同的地址,将通过比较进行检查.
您可以实现IEqualityComparer< T>并将其作为参数发送到Except()功能.这是一个blog post你可能会找到帮助.