是否有一种优雅的方法可以在C#中展平2D数组(使用Linq与否)?
E.g。假设
var my2dArray = new int[][] {
new int[] {1,2,3},
new int[] {4,5,6}
};
我想打电话给
my2dArray.flatten()
会产生
{1,2,3,4,5,6}
有什么想法吗?
答案 0 :(得分:24)
您可以使用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);