2

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

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

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

如何在没有反射和反射的情况下做到这一点?

4

1 回答 1

3

System.Array 类中有这个方法:

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

有关和的讨论,请参阅此问题GetLength()GetUpperBound()

但请注意,因为您在编译时不知道维度,所以您不能使用熟悉的a[i,j,k]语法。所有访问看起来像 int[] indices = ...; object x = a.GetValue(indices);

于 2013-01-12T10:54:35.637 回答