arrays - .NET Linq。关于 SelectMany 的困惑

标签 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();

最佳答案

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

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

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

关于arrays - .NET Linq。关于 SelectMany 的困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11635707/

相关文章:

Javascript根据ID过滤数据

javascript - 检测 JavaScript 中对象数组中是否存在特定值的函数

java - 如何在列表中使用 JSON Accumulate 方法?

mysql - 重复选择同一组 ID

python - 通过索引列表使用不同数组中的值,使用 += 更改 numpy 数组中的特定值

c - 将值从文件存储到 C 中的结构数组

c++ - std::list::sort 和指向元素的指针

python - Python 中的 del a[0] 会复制整个列表吗?

MySQL 交集

mysql - 计算两个日期之间的差异