不能完全确定一个好的标题,请随时将其编辑为一个好的标题

我有一个图像对象,其中包含与之相关的器官列表。

我想查询图像列表,并找到哪些具有器官列表中所有器官的图像。

这是方法签名

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/

10-13 05:55