C# C列表问题

C# C列表问题,c#,list,merge,ienumerable,C#,List,Merge,Ienumerable,执行以下操作的好方法是什么: List<IEnumerable<T>> listOfEnumerables = Get...(); List<T> listOfObjects = new List<T>(); // I want 'listOfObjects' to contain every element from every enumerable // in 'listOfEnumerables'. 谢谢。您可以使用LINQ: List

执行以下操作的好方法是什么:

List<IEnumerable<T>> listOfEnumerables = Get...();

List<T> listOfObjects = new List<T>();

// I want 'listOfObjects' to contain every element from every enumerable
// in 'listOfEnumerables'.
谢谢。

您可以使用LINQ:

List<T> listOfObjects = listOfEnumerables.SelectMany(s => s).ToList();

... 或者只是。foreachlistofobjects.addRange这在很大程度上取决于你对美的定义。虽然LINQ的美——这不一定比它更有效,但它可能不是,这对我来说肯定更难理解。我在这里发现唯一不美的是身份函数。为什么框架中没有一个有趣的.Id当你知道SelectMany做什么时,阅读并不难。不过,如果存在一个无参数的选择器,它会更漂亮。
List<T> listOfObjects = listOfEnumerables.SelectMany(s => s).ToList();
listOfEnumerables.ForEach(i => listOfObjects.AddRange(i));