转换2维数组

Man*_*noj 19 .net c# flatten multidimensional-array data-structures

selectMany.ToArray()方法是什么?它是内置的方法C#吗?

我需要将二维数组转换为一维数组.

Mar*_*ell 49

如果你的意思是一个锯齿状的数组(T[][]),SelectMany是你的朋友.但是,如果你的意思是一个矩形数组(T[,]),那么你可以通过foreach- 或者枚举日期数据:

int[,] from = new int[,] {{1,2},{3,4},{5,6}};
int[] to = from.Cast<int>().ToArray();
Run Code Online (Sandbox Code Playgroud)

  • 这个线程http://stackoverflow.com/questions/5132397/fast-way-to-convert-a-two-dimension-array-to-a-list-one-Dimension,详细介绍了执行foreach方法和还有一些性能指标。 (2认同)
  • 我不知道 `int[,]` 会被 `Cast()` 转换成 `IEnumerable&lt;int&gt;`。很酷的把戏! (2认同)

CMS*_*CMS 22

SelectMany是一个投影操作符,是命名空间System.Linq提供的扩展方法.

它在序列上执行一对多元素投影,允许您将生成的序列"展平"为一个.

您可以这样使用它:

int[][] twoDimensional = new int[][] { 
                                      new int[] {1, 2},
                                      new int[] {3, 4},
                                      new int[] {5, 6}
                                     };

int [] flattened = twoDimensional.SelectMany(x=>x).ToArray();
Run Code Online (Sandbox Code Playgroud)

  • 乖点; 这不是我所说的二维数组 - 它是一个锯齿状的数组...... (12认同)