在c#中平坦锯齿数组

本文关键字:数组 | 更新日期: 2023-09-27 18:12:45

是否有一种优雅的方法可以在c#中平坦化2D数组(使用Linq或不使用)?

。假设

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

我想调用像

这样的东西
my2dArray.flatten()

将产生

{1,2,3,4,5,6}

任何想法?

在c#中平坦锯齿数组

您可以使用SelectMany

var flat = my2dArray.SelectMany(a => a).ToArray();

这将适用于像你的例子中的锯齿数组,但不适用于像

这样的二维数组。
var my2dArray = new [,] { { 1, 2, 3 }, { 1, 2, 3 } };

在这种情况下你可以像这样迭代

foreach(var item in my2dArray)
    Console.WriteLine(item);