这个问题已经在这里有了答案:




已关闭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/

10-12 03:05