为什么此代码编译:
byte[][] my2DArray =new byte [][]{
new byte[] {1, 2},
new byte[] {3, 4},
};
var r = my2DArray.SelectMany(f=> f);
而这个不是:
byte[,] my2DArray =new byte [2,2]{
{1, 2},
{3, 4},
};
var r = my2DArray.SelectMany(f=> f);
不是[][]
吗[,]
?
编辑
为什么我需要那个?
我需要创建一个单维数组,以便将其发送到 GetArraySum
当然我可以创建超载,但我想将 mutli dim 转换为一个 dim。(GetArraySum
也服务于纯维度数组)。
void Main()
{
byte[][] my2DArray =new byte [][]{
new byte[] {1, 2},
new byte[] {3, 4},
};
var sum = GetArraySum(my2DArray.SelectMany(f=> f).ToArray());
}
int GetArraySum(byte [] ar)
{
return ar.Select(r=>(int)r).Sum();
}