<分区>
我有一个列表列表:
List<Tuple<string, List<SomeObject>>
我想选择存在于上面列表的所有行中的所有 SomeObjects
。
有些只存在于一个或两个列表中,但我希望所有对象都存在于每个列表中,而其他对象则被丢弃。
如果没有一堆 C# 代码,我无法找到一个优雅的解决方案。有什么好的方法吗?
<分区>
我有一个列表列表:
List<Tuple<string, List<SomeObject>>
我想选择存在于上面列表的所有行中的所有 SomeObjects
。
有些只存在于一个或两个列表中,但我希望所有对象都存在于每个列表中,而其他对象则被丢弃。
如果没有一堆 C# 代码,我无法找到一个优雅的解决方案。有什么好的方法吗?
最佳答案
list.Select (x => x.Item2 as IEnumerable<SomeObject>)
.Aggregate((x,y)=> x.Intersect(y))
.ToList();
或者,正如 Jeppe Stig Nielsen 所建议的(我认为它更优雅):
list.Select(x => x.Item2.AsEnumerable())
.Aggregate(Enumerable.Intersect)
.ToList();
关于c# - 使用 LINQ 我有一个列表列表,如何选择每个列表中存在的所有对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27922027/