1

我有一个类型的对象列表A。每个对象都有一个Name属性。我有一个类型的对象,B它也有一个Name属性,我想用它B.Name来匹配List<A>具有相同名称的对象。

这可以List.Where与自定义谓词一起使用吗?

4

3 回答 3

5

是的,除非我遗漏了您要求的一个微妙点:

var filtered = listOfAs.Where(a => a.Name == b.Name);
于 2012-04-10T15:43:27.057 回答
0

当然:

myListOfAs.Where(a=>a.Name == myB.Name);

这将返回与特定 B 实例 myB 同名的 myListOfAs 的零个或多个元素的 IEnumerable。

您还可以使用 Join() 将第二个列表中的多个 B 与 As 列表中具有匹配名称的元素进行匹配,但这听起来不像您想要做的。

于 2012-04-10T15:44:20.003 回答
0

如果我明白你在问什么,我想你只是想加入。使用查询语法最容易做到这一点:

var results = from a in ListA
              join b in ListB on a.Name equals b.Name
              select { whatever you need from a and b };
于 2012-04-10T15:44:48.697 回答