c# LINQ相交2个不同的类型列表并返回一个类型



我试图在2个列表中找到常见行,如下所示:

public class ListA
{
public string Id { get; set; }
public string Name { get; set; }
}
List<ListA> listA = new List<ListA>();
List<string> listB = new List<string>();
List<ListA> intersect = listA.Where(x => listB.Any(y => y == x.Id)).ToList();

所以上面的Linq查询将得到我基于Id属性的2个列表中的所有常见项目,我如何使用Intersect/IntersectBy Id做同样的事情并返回ListA的类型?

使用IntersectByLINQ方法。这将允许您将每个ListA条目中的Id属性与与提取的属性相同类型的另一个列表进行比较。

IEnumerable<ListA> intersect = listA.IntersectBy(listB, a => a.Id);

最新更新