Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/258.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# 无法从双精度[]转换为双精度[*,*]_C#_Arrays - Fatal编程技术网

C# 无法从双精度[]转换为双精度[*,*]

C# 无法从双精度[]转换为双精度[*,*],c#,arrays,C#,Arrays,我有一个代码看起来(或多或少): 我找到了一个解决方案,它是循环,而不是尝试野蛮的施法 所以我的问题是:为什么?内存分配的幕后发生了什么,阻止了看起来——至少乍一看——是可行的演员阵容?我的意思是,从结构上看,这两种表达似乎完全相同。我在这里错过了什么 编辑: 我必须使用“double[][]”,因为它是由外部库提供的。一个是锯齿阵列,另一个是一个大块 double[][]是一个包含double数组的数组。它的形状不一定是矩形的。在c语言中,它类似于adouble** double[,]只是一个

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

我找到了一个解决方案,它是循环,而不是尝试野蛮的施法

所以我的问题是:为什么?内存分配的幕后发生了什么,阻止了看起来——至少乍一看——是可行的演员阵容?我的意思是,从结构上看,这两种表达似乎完全相同。我在这里错过了什么

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

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

double[][]
是一个包含double数组的数组。它的形状不一定是矩形的。在c语言中,它类似于a
double**


double[,]
只是一个大内存块,它总是矩形的。在c语言中,它只是一个双*字符,使用
myArray[x+y*width]
访问元素。

非常简单,
[,]
数组(2D数组)和
[]
数组(锯齿数组)是不同的

[,]
数组可以用矩形直观地表示(因此也称为矩形数组),而
[]]
数组是包含其他1D数组的1D数组

将一个转换为另一个没有多大意义。

一个称为(
double[*,*]
),另一个称为(
double[][

这里有一个很好的讨论他们之间的差异


您应该这样定义双数组:

double[,] WageLossPerVacationDay  = new double[3, 5];
那它就应该起作用了


hth

CodeInChaos再次中风;-)在记忆问题上始终精确且相关。ThanxThanx。这不是我的观点,因为代码只是一个示例,实际上我必须使用数组数组
double[,] WageLossPerVacationDay  = new double[3, 5];