假设我有一个集合,称之为ids
它是类型IEnumerable<string>
,我有第二个收藏,称之为objects
它的类型MyObject[]
. MyObject
有一个名为的字符串属性id
。我想要一个返回所有对象的 LINQ 语句objects
集合谁的id
匹配中的任何值ids
收藏。ids
将是严格子集objects.Select(x => x.id)
。意思是,对于每个字符串ids
我知道会有一个对应的MyObject
in objects
。有人可以发布一个纯 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));
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)