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 に答える