我有一个类型的对象列表A
。每个对象都有一个Name
属性。我有一个类型的对象,B
它也有一个Name
属性,我想用它B.Name
来匹配List<A>
具有相同名称的对象。
这可以List.Where
与自定义谓词一起使用吗?
是的,除非我遗漏了您要求的一个微妙点:
var filtered = listOfAs.Where(a => a.Name == b.Name);
当然:
myListOfAs.Where(a=>a.Name == myB.Name);
这将返回与特定 B 实例 myB 同名的 myListOfAs 的零个或多个元素的 IEnumerable。
您还可以使用 Join() 将第二个列表中的多个 B 与 As 列表中具有匹配名称的元素进行匹配,但这听起来不像您想要做的。
如果我明白你在问什么,我想你只是想加入。使用查询语法最容易做到这一点:
var results = from a in ListA
join b in ListB on a.Name equals b.Name
select { whatever you need from a and b };