如何通过Linq结合列表?

时间:2013-11-01 16:27:37

标签: c# linq

我知道如何在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)
   }
}

1 个答案:

答案 0 :(得分:8)

使用SelectMany将一组集合展平为一个列表:

var hugeList = objects.SelectMany(o => o.list);

或实际列表:

List<int> hugeList = objects.SelectMany(o => o.list).ToList();