如何使用linq到object过滤2个列表来创建列表

Dan*_*now 5 c# linq linq-to-objects

我想知道是否有一种方法可以使用Linq来反对从过滤2个其他列表中获取列表.我有两个对象A和B的列表,它们通过一个属性(代码:字符串)相互关联.B有另一个属性,Name:String.

我想获得满足2个条件的A对象列表.

- 所有A对象必须将其A.Code属性与B列表中的任何B.Code属性相匹配.

-B.Name必须是="yoda";

我试过这个代码(和另一个例子),但它似乎工作,我不知道为什么.我刚开始使用linQ.

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>();
Run Code Online (Sandbox Code Playgroud)

提前致谢!.

Kin*_*ing 5

有了您的要求,我觉得应该用Any的方法,因此,我们应该写method query没有expression query.当然,我不知道相当于Anyexpression query(至少应该是短期作为method query,否则,这不是好).如果有人知道,请留下一些评论.感谢那.

var FilteredAList = ListOfA.Where(x=>ListOfB.Any(y=>x.Code==y.Code && y.Name=="yoda"))
                           .ToList<A>();
Run Code Online (Sandbox Code Playgroud)