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

时间:2012-07-02 14:32:52

标签: c# .net list multidimensional-array

  

可能重复:
  How can I convert a list<> to a multi-dimensional array?

我希望有一个double[,]形式的数组用于此目的,因为我不知道这个数组的长度是多少,我想首先使用List然后使用{{ 1}}将其转换为List<T>.ToArray()

double[,]

3 个答案:

答案 0 :(得分: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;

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

答案 1 :(得分:1)

finalData.ToArray()会生成double[][]因为:

  • List<T>.ToArray()返回T[]
  • List<T[].ToArray()返回T[][]

答案 2 :(得分:1)

  1. 实例化一个新的双数组,其大小最大[列表长度,列表中最大数组长度]
  2. 使用double for循环列表(首先在列表中,嵌套在当前列表项上)并填充新数组