実行時に可変長の多次元配列を作成したい。
入力->各次元の長さを持つ配列。次元数=入力配列の長さ。
出力->可変次元配列。
例:
入力->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);