C#で多次元配列の行または列の長さを取得するにはどうすればよいですか?
例えば:
int[,] matrix = new int[2,3];
matrix.rowLength = 2;
matrix.colLength = 3;
matrix.GetLength(0) -> Gets the first dimension size
matrix.GetLength(1) -> Gets the second dimension size
Array
のプロパティを見ましたか?
Length
は、配列の長さ(セルの総数)を提供します。GetLength(n)
は、指定された次元のセルの数を示します(0を基準にして)。 3次元配列がある場合:
_int[,,] multiDimensionalArray = new int[21,72,103] ;
_
multiDimensionalArray.GetLength(n)
は、n = 0、1、2の場合、それぞれ21、72、103を返します。
ジャグ/スパース配列を構築している場合、問題はやや複雑です。ジャグ/スパース配列は、[通常]配列内の配列のネストされたコレクションとして構築されます。その場合、各要素を順番に調べる必要があります。これらは通常ネストされた1次元配列ですが、たとえば、5次元配列を含む3次元配列を含む2次元配列を持つことができなかった理由はありません。
いずれにせよ、ギザギザ/スパース構造では、各セルで長さプロパティを使用する必要があります。
matrix.GetLowerBound(0)
およびmatrix.GetUpperBound(0)
を使用します。