List1包含项目{ A, B }并List2包含项目{ A, B, C }.
我需要的是{ C }在使用Except Linq扩展时返回.相反,我得到了返回{ A, B },如果我在表达式中翻转列表,结果是{ A, B, C }.
我是否误解了Except的观点?还有其他我没有看到使用的扩展吗?
到目前为止,我已经查看并尝试了很多不同的帖子,但没有成功.
var except = List1.Except(List2); //This is the line I have thus far
Run Code Online (Sandbox Code Playgroud)
编辑:是的我正在比较简单的对象.我从未使用过IEqualityComparer,了解它很有趣.
谢谢大家的帮助.问题不是实现比较器.链接的博客文章和下面的示例有帮助.
我有2 IList<T>个相同类型的对象ItemsDTO.我想从另一个列表中排除一个列表.然而,这对我来说似乎没有用,我想知道为什么?
IList<ItemsDTO> related = itemsbl.GetRelatedItems();
IList<ItemsDTO> relating = itemsbl.GetRelatingItems().Except(related).ToList();
Run Code Online (Sandbox Code Playgroud)
我正在尝试related从relating列表中删除项目.