在C#中键入转换对象数组成员会导致异常

a k*_*a k 5 c# arrays object

我有以下代码,我正在尝试调试

int ll(ref float[,] _lv) {
  object[] results = new object[20];

  results = func_v1(11, _lv);

}
Run Code Online (Sandbox Code Playgroud)

打破观察变量'结果'显示如下所示

results {object[11]}
 + [0] {float[1,1]}
 + [1] {double[1,1]}
 + [2] {float[48,1]}
   ...
   ...
 + [10] {float[1,1]}
Run Code Online (Sandbox Code Playgroud)

而且我无法输入强制转换来获取它的值

float f = (float)results[0]; 抛出无效的强制转换异常.

请帮助我理解这个对象数组究竟是什么以及如何从中获取值.

问候.AK

Dha*_*run 5

你正在使用一个多维数组,你可以在这里阅读:http: //msdn.microsoft.com/en-us/library/2yd9wwz4(v = vs.71).aspx

你需要适当地施放它

var f = (float[,])results[0]
Run Code Online (Sandbox Code Playgroud)

  • ...但请记住,var f现在将是一个浮点数组. (2认同)

Hen*_*man 1

float f = (float)results[0];抛出无效的强制转换异常。

我想你需要

float[,] f = (float[,])results[0];
double[,] d = (double[,])results[1];
Run Code Online (Sandbox Code Playgroud)