我收到此错误:错误1:无法将类型'double [] []'隐式转换为'double []'

时间:2011-01-23 05:31:39

标签: c# multidimensional-array

我收到了这段代码:

double[][] ou = new double[h][w];

for(i=0;i<h;i++)
   for(int j=0;j<w;j++)
      ou[i][j] = sortie[z++];

return ou;  

我得到了这两个错误:

Error 1: Cannot implicitly convert type 'double[][]' to 'double[]'

提到“return ou”

Error 2: Invalid rank specifier: expected ',' or ']'

提到“double [] [] ou = new double [h] [w];”

编辑: 我尝试将代码从Java转换为C#,这就是我有“double [] [] ou = new double [h] [w];”

2 个答案:

答案 0 :(得分:0)

试试这个:

double[,] ou = new double[h,w];
for(i=0;i<h;i++)
       for(int j=0;j<w;j++)
          ou[i,j] = sortie[z++];

return ou;  

多维数组的语法在维度之间使用逗号,而不是双括号。

答案 1 :(得分:0)

您要创建的是一个多维数组,但正在创建一个Jagged数组,它是一个Array数组。看看这个SO问题的差异。

Multidimentional Arrays and Jagged Array

所以在第一行本身你不能用new double[h][w]创建一个不允许的数组

你需要像这样创建阵列

double[,] array = new double [h,w];

和访问这样的元素

array[i,j] = somevalue;