LINQ查询帮助

时间:2011-07-21 22:17:12

标签: c# linq

我有两个收藏品

List<CustomClass1> items1 
List<CustomClass2> items2

CustomClass1 has a property KEY
CustomClass2 has a property KEY

我想只在items1中保留那些在items2中具有匹配键的条目。如何通过LINQ实现这一目标?

感谢

4 个答案:

答案 0 :(得分:4)

var res = items1.Join(items2,
                      item1 => item1.Key, 
                      item2 => item2.Key, 
                      (item1, item2) => item1);

答案 1 :(得分:3)

var res = items1.Where(a=> items2.Any(c=>c.Key == a.Key));

答案 2 :(得分:2)

var q = from i1 in items1 
        join i2 in items2 on i1.Key equals i2.Key 
        select i1;

答案 3 :(得分:0)

您始终可以使用Intersect运算符 -

var result = item1.Intersect(item2);

如果有必要,重载允许权益比较,但如果您的项目来自相同的上下文,则不需要