.NET Linq。关于SelectMany的困惑

时间:2012-07-24 16:57:15

标签: arrays list select linq

在给定的代码示例中,为什么我们使用x.ToArray()? 每个元素x已经是一个数组了不是吗?

请让我少迷惑:)

    var array1 = new int[3] { 1, 2, 3 };     //New integer array
    var array2 = new int[3] { 4, 5, 6 };     //New integer array
    var array3 = new int[3] { 7, 8, 9 };     //New integer array

    IList<int[]> list4 = new List<int[]> { array1, array2, array3 };

    var theManyList = list4.SelectMany(x => x.ToArray()).ToList();

1 个答案:

答案 0 :(得分:6)

你不需要它。你可以这样做:

list4.SelectMany(x => x).ToList();

原因正如你所说,数组已经是数组。 SelectMany需要IEnumerable<T>,因此无需添加额外操作。为什么有人在一个例子中这样做,不知道。也许他们试图说明你必须通过一个IEnumerable?