我有两个列表,我有一个要比较的属性。基于这个属性,我想返回list 1中所有不在list 2中的元素。
列表1:{姓名、年龄、身份证}
{John, 10, 1},
{Joe, 20, 2},
{Mary, 30, 3}
列表2:{姓名、年龄、身份证}
{John, 10, 1}
{Joe, 20, 2}
{Mary, 30, 5}
这应该只从列表1返回
{Mary, 30, 3}
我试过了
var invalidElements = list1
.Select(o => list2.Any(p => p.Id != o.Id))
.ToList();
2条答案
按热度按时间ohfgkhjo1#
使用Where方法而不是select(并反转逻辑)。Select用于将集合投影到另一个不同类型的集合(通常是元素的属性)。
4c8rllxm2#
因为您编写了要按ID筛选的代码,所以可以使用新的ExceptBy方法: