2012-02-10 61 views
0

我在想,如果有人可以帮助我...LINQ到一个列表进行比较项目的任何项目在另一

有LINQ查询将返回一个布尔值,如果从一个IList<>任何项目包含INT另一个IList<>

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

有没有可以做到这一点的LINQ查询?如果有的话,有人可以告诉我正确的实施?

谢谢

回答

8

那么你能预料这两个列表:

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

那是你以后?

+1

再次感谢乔恩,这就是我需要的东西! – Nugs 2012-02-10 20:47:50

6

我想这应该这样做:

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

另外一个为你的选择:

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

阅读条件后更新...我应该在演示前学会阅读。 – 2012-02-10 20:37:19

相关问题