在C#中展平锯齿状数组

有没有一种优雅的方法来在C#中展平2D数组(使用Linq或不使用Linq)?

比如假设

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

我想打个电话

 my2dArray.flatten() 

会产生的

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

有任何想法吗?

您可以使用SelectMany

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

这将适用于您的示例中的锯齿状数组,但不适用于2D数组

 var my2dArray = new [,] { { 1, 2, 3 }, { 1, 2, 3 } }; 

但在这种情况下,您可以像这样迭代值

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