C# 无法从双精度[]转换为双精度[*,*]
我有一个代码看起来(或多或少): 我找到了一个解决方案,它是循环,而不是尝试野蛮的施法 所以我的问题是:为什么?内存分配的幕后发生了什么,阻止了看起来——至少乍一看——是可行的演员阵容?我的意思是,从结构上看,这两种表达似乎完全相同。我在这里错过了什么 编辑:C# 无法从双精度[]转换为双精度[*,*],c#,arrays,C#,Arrays,我有一个代码看起来(或多或少): 我找到了一个解决方案,它是循环,而不是尝试野蛮的施法 所以我的问题是:为什么?内存分配的幕后发生了什么,阻止了看起来——至少乍一看——是可行的演员阵容?我的意思是,从结构上看,这两种表达似乎完全相同。我在这里错过了什么 编辑: 我必须使用“double[][]”,因为它是由外部库提供的。一个是锯齿阵列,另一个是一个大块 double[][]是一个包含double数组的数组。它的形状不一定是矩形的。在c语言中,它类似于adouble** double[,]只是一个
我必须使用“double[][]”,因为它是由外部库提供的。一个是锯齿阵列,另一个是一个大块
double[][]
是一个包含double数组的数组。它的形状不一定是矩形的。在c语言中,它类似于adouble**
double[,]
只是一个大内存块,它总是矩形的。在c语言中,它只是一个双*字符,使用myArray[x+y*width]
访问元素。非常简单,[,]
数组(2D数组)和[]
数组(锯齿数组)是不同的
[,]
数组可以用矩形直观地表示(因此也称为矩形数组),而[]]
数组是包含其他1D数组的1D数组
将一个转换为另一个没有多大意义。一个称为(double[*,*]
),另一个称为(double[][
)
这里有一个很好的讨论他们之间的差异
您应该这样定义双数组:
double[,] WageLossPerVacationDay = new double[3, 5];
那它就应该起作用了
hthCodeInChaos再次中风;-)在记忆问题上始终精确且相关。ThanxThanx。这不是我的观点,因为代码只是一个示例,实际上我必须使用数组数组
double[,] WageLossPerVacationDay = new double[3, 5];