我知道如何在C#中将两个列表组合在一起,但假设我有一个IEnumerable对象,每个对象都有一个列表。如何创建一个巨大的列表,连接所有列表。
我基本上想在Linq(更优雅)中执行以下操作
//FakeObject has a list property
IEnumerable<FakeObject> objects = ...;
List<int> hugeList = new List<int>();
foreach(FakeObject object in objects)
{
List<int> list = object.list;
foreach(int i in list)
{
hugeList.Add(i)
}
}
答案 0 :(得分:8)
使用SelectMany
将一组集合展平为一个列表:
var hugeList = objects.SelectMany(o => o.list);
或实际列表:
List<int> hugeList = objects.SelectMany(o => o.list).ToList();