将List <T>转换为Array(多维)

Sae*_*ani 5 .net c# list multidimensional-array

可能重复:
如何将列表<>转换为多维数组?

我想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 :(
}
Run Code Online (Sandbox Code Playgroud)

das*_*ght 5

因为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;
Run Code Online (Sandbox Code Playgroud)

上面的代码假设您至少有一个项目finalData,并且内部所有列表的长度finalData是相同的.