LINQ将一个列表中的项目与另一个列表中的任何项目进行比较

时间:2012-02-10 20:16:21

标签: linq entity-framework linq-to-entities

我想知道,如果有人能帮助我......

如果来自一个IList<>的任何项目包含在另一个IList<>中,是否会返回bool的LINQ查询。

这些IList<>'s是对象,我需要比较对象的一个​​属性,在这种情况下是“Name”属性吗?

是否有可以执行此操作的LINQ查询?如果是这样,有人能告诉我正确的实施吗?

谢谢

3 个答案:

答案 0 :(得分:9)

那么你可以预测两个列表:

if (list1.Select(x => x.Name)
         .Intersect(list2.Select(x => x.Name))
         .Any())

这就是你要追求的吗?

答案 1 :(得分:6)

我认为应该这样做:

bool matchExists = list1.Any(a1 => list2.Any(a2 => a1.Name == a2.Name));

答案 2 :(得分:2)

另一个选项:

List1.Where(l => List2.Select(s => s.Name).Contains(l.Name)).Any();