LINQ查询帮助

本文关键字:帮助 查询 LINQ | 更新日期: 2023-09-27 18:03:09

我有两个集合

List<CustomClass1> items1 
List<CustomClass2> items2
CustomClass1 has a property KEY
CustomClass2 has a property KEY

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

谢谢

LINQ查询帮助

var res = items1.Join(items2,
                      item1 => item1.Key, 
                      item2 => item2.Key, 
                      (item1, item2) => item1);
var res = items1.Where(a=> items2.Any(c=>c.Key == a.Key));
var q = from i1 in items1 
        join i2 in items2 on i1.Key equals i2.Key 
        select i1;

你可以随时使用Intersect操作符-

var result = item1.Intersect(item2);

如果有必要,重载允许公平比较,尽管如果你的项目来自相同的上下文中,它不应该是必要的