gpt4 book ai didi

c# - 相交 LINQ 查询

转载 作者:IT王子 更新时间:2023-10-29 03:51:08 24 4
gpt4 key购买 nike

如果我有一个 IEnumerable,其中 ClassA 公开了一个 long 类型的 ID 属性。是否可以使用 Linq 查询获取 ID 属于第二个 IEnumerable 的所有 ClassA 实例?

也就是说,这可以做到吗?

IEnumerable<ClassA> = original.Intersect(idsToFind....)?

其中 original 是 IEnumerable<ClassA> idsToFind 是 IEnumerable<long> .

最佳答案

是的。

正如其他人回答的那样,您可以使用 Where,但对于大型集合来说效率极低。

如果性能是一个问题,您可以调用 Join :

var results = original.Join(idsToFind, o => o.Id, id => id, (o, id) => o);

如果 idsToFind 可以包含重复项,您需要对 ID 或结果调用 Distinct() 或替换 JoinGroupJoin (GroupJoin 的参数将相同)。

关于c# - 相交 LINQ 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2381049/

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