gpt4 book ai didi

c# - 根据另一个集合中的值过滤集合

转载 作者:行者123 更新时间:2023-11-30 19:45:52 25 4
gpt4 key购买 nike

我有一个整数数组和一个包含整数 ID 的对象列表。

如果整数数组包含 1、2、3 等,我只想获取包含这些 ID 的对象(因此那些具有 1、2、3 等的对象)。

这在 .NET 3.5 中如何实现?

谢谢

最佳答案

DaveShaw 的 answer如果您处理的是小序列,那很好。如果您的 ID 数组变大,一种更高效的方法是将数组加载到 HashSet<T> 中。然后执行完全相同的查询,只是改用集合。

var hashset = new HashSet<int>(ints);
var matches = objects.Where(obj => hashset.Contains(obj.Id));

对于这种情况和其他更复杂的情况,您还应该了解 Enumerable.Join它根据键匹配两个序列并产生所需的结果。

 var matches = from obj in objects 
join id in ints
on obj.Id equals id
select obj;
// var matches = objects.Join(ints, obj => obj.Id, id => id, (obj, id) => obj);

关于c# - 根据另一个集合中的值过滤集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9634515/

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