我有一个A
类型的对象列表。每个对象都有Name
属性。我有一个B
类型的对象,它也有Name
属性,我希望使用此B.Name
来匹配List<A>
中具有相同名称的对象。
使用List.Where
和自定义谓词可以实现这一点吗?
答案 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 };