LINQ查询问题,需要加入

qui*_*qui 1 c# linq

不完全确定这个标题的好标题,随意将其编辑为好的标题

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

我要查询图像的列表,找到哪些具有所有器官的器官列表.

这是方法签名

public static IEnumerable<Image> WithOrgans(this IEnumerable<Image> qry, IEnumerable<Organ> organs)
Run Code Online (Sandbox Code Playgroud)

不太确定如何为此构建linq,会欣赏一些想法,我有一段时间没有做linq,所以我很生锈!

UPDATE

好的,这是一些示例数据

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

Eri*_*lje 10

使用Intersect的另一种方法:

from i in qry 
where i.Organs.Intersect(organs).Count == organs.Count
select i
Run Code Online (Sandbox Code Playgroud)

ETA:

从您的评论中,您提到您正在获取WhereListIterator.我相信WhereListIterator实现了IEnumerable,所以你得到了你应该得到的确切内容.

如果您发现结果不应该是空的,您可能需要检查以确保您的Image类正确实现了Equals()和GetHashCode(),以便可以有效地比较它们.