.NET Linq.关于SelectMany的困惑

Her*_*art 2 linq arrays select list

在给定的代码示例中,为什么我们使用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();
Run Code Online (Sandbox Code Playgroud)

pst*_*jds 6

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

list4.SelectMany(x => x).ToList();
Run Code Online (Sandbox Code Playgroud)

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