我试图在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的类型?
使用IntersectBy
LINQ方法。这将允许您将每个ListA条目中的Id属性与与提取的属性相同类型的另一个列表进行比较。
IEnumerable<ListA> intersect = listA.IntersectBy(listB, a => a.Id);