gpt4 book ai didi

c# - LINQ查询题,需要加入

转载 作者:太空宇宙 更新时间:2023-11-03 17:37:10 24 4
gpt4 key购买 nike

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

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

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

这是方法签名

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 }});

最佳答案

另一种使用 Intersect 的方法:

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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com