【发布时间】:2013-08-12 00:13:12
【问题描述】:
我想知道是否有办法使用 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>();
提前致谢!。
【问题讨论】:
-
刚刚测试了一下,我得到了0个结果,即使B的列表有几个yodas,并且b的列表有多个与A代码匹配的代码。
-
您是在谈论我在答案中发布的代码吗?如果是这样,我确定
ListOfB中具有.Name="yoda"的元素没有Code匹配ListOfA中的任何元素。这两个条件都应该考虑。你可以把ListOfB和ListOfA的样本数据贴出来让我测试一下。
标签: c# linq linq-to-objects