List.Where传入不同类型的对象(Predicates)

时间:2012-04-10 15:40:53

标签: c# linq list where predicate

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

使用List.Where和自定义谓词可以实现这一点吗?

3 个答案:

答案 0 :(得分:5)

是的,除非我错过了您的请求的微妙之处:

var filtered = listOfAs.Where(a => a.Name == b.Name);

答案 1 :(得分:0)

不确定

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

这将返回一个IEnumerable,其中包含与特定B实例myB同名的myListOfAs的零个或多个元素。

您还可以使用Join()来匹配第二个列表中的多个B,其中的元素与As列表中的名称相匹配,但这听起来并不像您尝试的那样。

答案 2 :(得分: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 };