Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/274.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将LINQ返回值转换为2D数组_C#_Arrays_Linq_Matrix - Fatal编程技术网

C# 将LINQ返回值转换为2D数组

C# 将LINQ返回值转换为2D数组,c#,arrays,linq,matrix,C#,Arrays,Linq,Matrix,实际上,我正在使用两个二维阵列: 矩阵加法(int[]a,int[]b) 使用LINQ添加两个矩阵并将它们返回到2D数组格式int[][]。LINQ结果正常,返回了预期结果,但无法帮助自己以int[]格式返回结果 矩阵加法() 错误:System.InvalidCastException:“无法将类型为“d_u52[System.Int32[],System.Collections.Generic.IEnumerable1[System.Int32]]]”的对象强制转换为类型为“System.I

实际上,我正在使用两个二维阵列:

矩阵加法(int[]a,int[]b)

使用LINQ添加两个矩阵并将它们返回到2D数组格式
int[][]
。LINQ结果正常,返回了预期结果,但无法帮助自己以int[]格式返回结果

矩阵加法()


错误:System.InvalidCastException:“无法将类型为“d_u5
2[System.Int32[],System.Collections.Generic.IEnumerable
1[System.Int32]]]”的对象强制转换为类型为“System.Int32[]”。

如果没有强制转换,当前代码将返回嵌套在另一个可枚举对象中的可枚举项。您需要将内部可枚举项和外部可枚举项都转换为
int[]
,并删除强制转换:

return a.Select(
    (x, i) => x.Select((y, j) => a[i][j] + b[i][j]).ToArray()
).ToArray();

不能直接将可枚举项强制转换为二维交错数组:

return Enumerable.Range(0, a.GetLength(0))
    .Select(i => Enumerable.Range(0, a.GetLength(1))
        .Select(j => a[i][j] + b[i][j])
        .ToArray()
    ).ToArray();
return Enumerable.Range(0, a.GetLength(0))
    .Select(i => Enumerable.Range(0, a.GetLength(1))
        .Select(j => a[i][j] + b[i][j])
        .ToArray()
    ).ToArray();