如何在运行时创建变量维数组?

时间:2013-01-12 10:35:09

标签: c# .net arrays reflection multidimensional-array

我想在运行时创建可变长度的多维数组。

输入 - >具有每个维度长度的数组。维数=输入数组的长度 输出 - >变维数组。

例:
输入 - > var lengths = new [] {3,4,5}
预期输出 - > var arr = new string[3,4,5]

如果没有和有反思怎么做?

1 个答案:

答案 0 :(得分:3)

System.Array类中有这个方法:

public static Array CreateInstance(
Type elementType,
int[] lengths    
)

有关GetLength()GetUpperBound()

的讨论,请参阅this question

但请注意,由于您在编译时不了解维度,因此无法使用熟悉的a[i,j,k]语法。所有访问权限都看起来像int[] indices = ...; object x = a.GetValue(indices);