这个问题已经在这里有了答案:
已关闭8年。
我想为此使用double[,]
形式的数组,因为我不知道该数组的长度是什么,我想先制作一个List
,然后再使用List<T>.ToArray()
将其转换为double[,]
:
public double[,] FilterClampedData(double[,] data)
{
var finalData = new List<double[]>();
//Do some stuff on parameter
return finalData.ToArray(); ///Does not compile :(
}
最佳答案
由于ToArray
返回一维数组,因此,为什么不进行编译也就不足为奇了。如果返回double[][]
,它将进行编译。您还可以使用两个嵌套循环手动构建二维数组:
var R = finalData.Count;
var C = finalData[0].Length;
var res = new double[R, C];
for (int r = 0 ; r != R ; r++)
for (int c = 0 ; c != C ; c++)
res[r, c] = finalData[r][c];
return res;
上面的代码假定
finalData
中至少有一项,并且finalData
中所有列表的长度是相同的。关于c# - 将List <T>转换为数组(多维),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11295746/