展平 List<Tuple<string,List<Object>>> [重复]
Posted
技术标签:
【中文标题】展平 List<Tuple<string,List<Object>>> [重复]【英文标题】:Flatten a List<Tuple<string,List<Object>>> [duplicate] 【发布时间】:2017-02-01 12:30:00 【问题描述】:我有以下属性:
List<Tuple<string,List<Object>>> GroupedItems
我需要一个所有对象的列表。
目前我正在使用一种非常实用的循环方法:
List<Object> flatList = new List<Object>();
foreach (var y in container.GroupedItems)
foreach(var z in y.Item2)
flatList.Add(z);
我确信使用 LINQ 可以以更舒适的方式完成此操作,遗憾的是我没有太多经验。
提前谢谢:)
【问题讨论】:
container
和 Item2
是什么?请参阅How to create a Minimal, Complete, and Verifiable example。
您不需要知道什么是“容器”,它是很好的抽象。 'Item2' - 显然是一些对象,因为它被添加到这样的列表中。
@ChrisPickford Item2
是Tuple<T1, T2>
中的第二个属性的名称
【参考方案1】:
您可能想使用SelectMany
:
List<Object> flatList = GroupedItems.SelectMany(item => item.Item2).ToList();
SelectMany
将枚举中的所有项投影到另一个枚举。在您的情况下,它将每个元组投影到该元组中的对象列表 (Item2
)。
【讨论】:
完美,这正是我想要的,谢谢!!以上是关于展平 List<Tuple<string,List<Object>>> [重复]的主要内容,如果未能解决你的问题,请参考以下文章