无法从double [] []转换为double [*,*]

Meh*_*ANI 6 c# arrays

我有一个看起来像(或多或少)的代码:

public void INeedHolidaysNow(double[,]){
     //... Code to take a break from coding and fly to Hawaii
}

double[][] WageLossPerVacationDay = new  double[10][5];

INeedHolidays(WageLossPerVacationDay); // >>throws the Exception in the Title
Run Code Online (Sandbox Code Playgroud)

我在这篇文章中找到了解决方案,其中包括循环而不是尝试野蛮演员

所以我的问题是:为什么?在内存分配的幕后发生了什么,阻止了看起来似乎 - 至少乍一看,是一个可行的演员?我的意思是在结构上,这两种表达方式似乎都很相似.我在这里失踪的是什么?

编辑:我必须使用"double [] []",因为它是由外部库提供的.

Cod*_*aos 10

一个是锯齿状阵列,另一个是大块.

double[][]是一个包含double数组的数组.它的形状不一定是矩形的.用c表示它类似于adouble**

double[,]只是一大块内存,它总是矩形的.用c表示它只是一个双*myArray[x+y*width]用于访问元素.


dec*_*one 6

一个称为多维数组(double[*,*]),另一个称为锯齿数组(double[][]).

以下是对它们之间差异的良好讨论.

C#中多维数组和数组数组之间的区别是什么?