如何通过Linq结合列表?

Hen*_*hiu 0 c# linq

我知道如何在C#中将两个列表组合在一起,但假设我有一个IEnumerable对象,每个对象都有一个列表.如何创建1个巨大的列表,连接所有列表.

我基本上想在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)
   }
}
Run Code Online (Sandbox Code Playgroud)

D S*_*ley 8

用于SelectMany将集合集合展平到一个列表中:

var hugeList = objects.SelectMany(o => o.list);
Run Code Online (Sandbox Code Playgroud)

或者是实际的清单:

List<int> hugeList = objects.SelectMany(o => o.list).ToList();
Run Code Online (Sandbox Code Playgroud)