不能完全确定一个好的标题,请随时将其编辑为一个好的标题
我有一个图像对象,其中包含与之相关的器官列表。
我想查询图像列表,并找到哪些具有器官列表中所有器官的图像。
这是方法签名
public static IEnumerable<Image> WithOrgans(this IEnumerable<Image> qry, IEnumerable<Organ> organs)
不太确定如何为此构建linq,不胜感激一些想法,我有一段时间没做过linq了,所以很生锈!
更新
好的,这是一些示例数据
dictionary.Add(7, new Image { id = 7, organs = new List<Organ> { organA, organB }});
dictionary.Add(8, new Image { id = 8, organs = new List<Organ> { organA }});
dictionary.Add(9, new Image { id = 9, organs = new List<Organ> { organC }});
最佳答案
使用相交的另一种方法:
from i in qry
where i.Organs.Intersect(organs).Count == organs.Count
select i
预计到达时间:
从您的评论中,您提到您正在返回WhereListIterator。我相信WhereListIterator实现了IEnumerable,因此您可以准确获得自己应该得到的东西。
如果发现结果不应该为空,则可能需要检查以确保Image类正确实现了Equals()和GetHashCode(),以便可以对它们进行有效比较。
关于c# - LINQ查询问题,需要加入,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1098825/