gpt4 book ai didi

c# - 将包含不同类型的两个集合相交

转载 作者:太空狗 更新时间:2023-10-30 00:10:52 24 4
gpt4 key购买 nike

假设我有一个集合,称它为ids它的类型是 IEnumerable<string> ,我有第二个收藏,称之为 objects它的类型是 MyObject[] . MyObject有一个名为 id 的字符串属性.我想要一个返回 objects 中所有对象的 LINQ 语句收藏谁id匹配 ids 中的任何值收藏。 ids将是 objects.Select(x => x.id) 的严格子集.意思是,对于 ids 中的每个字符串我知道会有一个对应的 MyObjectobjects .有人可以发布纯 LINQ 解决方案吗?我已经尝试了几件事但没有运气。我可以很容易地提出一个迭代解决方案,所以除非仅使用 LINQ 是不可能的,否则请不要发布任何内容。

最佳答案

“只是”LINQ:

var r = obj.Where(o => ids.Any(id => id == o.id));

但更好的是,对于更大的 n,有一个集合:

var hs = new HashSet(ids);
var r = obj.Where(o => hs.Contains(o.id));

关于c# - 将包含不同类型的两个集合相交,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18602688/

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