我想在运行时创建可变长度多维数组。
输入-> 具有每个维度长度的数组。维数 = 输入数组的长度。
输出-> 可变维度数组。
示例:
输入 ->var lengths = new [] {3,4,5}
预期输出 ->var arr = new string[3,4,5]
如何在没有反射和反射的情况下做到这一点?
我想在运行时创建可变长度多维数组。
输入-> 具有每个维度长度的数组。维数 = 输入数组的长度。
输出-> 可变维度数组。
示例:
输入 ->var lengths = new [] {3,4,5}
预期输出 ->var arr = new string[3,4,5]
如何在没有反射和反射的情况下做到这一点?
System.Array 类中有这个方法:
public static Array CreateInstance(
Type elementType,
int[] lengths
)
有关和的讨论,请参阅此问题GetLength()
GetUpperBound()
但请注意,因为您在编译时不知道维度,所以您不能使用熟悉的a[i,j,k]
语法。所有访问看起来像 int[] indices = ...; object x = a.GetValue(indices);