C# 如何通过使用linq to对象筛选2个列表来创建列表
我想知道是否有一种方法可以使用Linq to object从过滤其他两个列表中获得一个列表。 我有两个对象A和B的列表,它们通过一个atribute(代码:String)相互关联。B有另一个心房肌,名字:String 我想得到一个满足2个条件的对象列表 -所有A对象都必须将其A代码atribute与B列表中的任何B代码atribute匹配 -B.名称必须为=“yoda” 我试过使用这个代码(还有另一个例子) 但它似乎不起作用,我不知道为什么。 我只是从林克开始C# 如何通过使用linq to对象筛选2个列表来创建列表,c#,linq,linq-to-objects,C#,Linq,Linq To Objects,我想知道是否有一种方法可以使用Linq to object从过滤其他两个列表中获得一个列表。 我有两个对象A和B的列表,它们通过一个atribute(代码:String)相互关联。B有另一个心房肌,名字:String 我想得到一个满足2个条件的对象列表 -所有A对象都必须将其A代码atribute与B列表中的任何B代码atribute匹配 -B.名称必须为=“yoda” 我试过使用这个代码(还有另一个例子) 但它似乎不起作用,我不知道为什么。 我只是从林克开始 List<A> Fil
List<A> FilteredAList = (from OneA in ListOfA
join OneB in ListOfB
on OneA.Code equals OneB.Code
where OneB.Name == "yoda"
select OneA).ToList<A>();
List FilteredAList=(来自ListOfA中的OneA)
在列表B中加入OneB
在OneA上。代码等于OneB。代码
其中OneB.Name==“yoda”
选择OneA.ToList();
提前谢谢 根据您的要求,我认为我们应该使用
任何
方法,因此我们应该编写方法查询
而不是表达式查询
。当然,我不知道表达式查询
中的Any
的等价物(至少应该是short,就像方法查询
,否则就不好了)。如果有人知道,请留下一些评论。谢谢你
var FilteredAList = ListOfA.Where(x=>ListOfB.Any(y=>x.Code==y.Code && y.Name=="yoda"))
.ToList<A>();
var-FilteredAList=ListOfA.Where(x=>ListOfB.Any(y=>x.code==y.code&&y.Name==“yoda”))
.ToList();
刚刚测试过,结果为0,尽管B的列表中有几个Yoda,B的列表中有几个代码与A代码匹配。你是说我在回答中发布的代码吗?如果是这样,我确信ListOfB
中具有.Name=“yoda”
的元素没有与ListOfA
中的任何元素匹配的code
。这两个条件都应该考虑。您可以发布ListOfB
和ListOfA
的示例数据,以便我进行测试。