5

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

我想获得满足 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>();

提前致谢!。

4

1 回答 1

5

根据您的要求,我认为我们应该使用Any方法,因此我们应该写method querynot expression query。当然我不知道 in 的等价物Anyexpression query至少应该和 in 一样method query,否则不好)。如果有人知道,请发表评论。感谢那。

var FilteredAList = ListOfA.Where(x=>ListOfB.Any(y=>x.Code==y.Code && y.Name=="yoda"))
                           .ToList<A>();
于 2013-08-12T00:20:12.007 回答