配列の最大インデックスを取得するには、.GetUpperBound()を使用します。
サンプル
例1)1次元配列の最大インデックスを取得する
string[] arr1 = { "東京", "名古屋", "大阪" };
// 配列の最大インデックスを取得する
int x = arr1.GetUpperBound(0);
結果
x → 2
要素数ではなく最大インデックスが返るので、上例では2が返ります。
例2)2次元配列の最大インデックスを取得する
string[,] arr =
{{"東京都", "神奈川県"}, {"愛知県", "岐阜県"}, {"大阪府", "京都府"}};
// 配列の最大インデックスを取得する
int x1 = arr.GetUpperBound(0); //1次元目の最大インデックス
int x2 = arr.GetUpperBound(1); //2次元目の最大インデックス
結果
x1 → 2
x2 → 1
要素数ではなく最大インデックスが返るので、上例では2と1が返ります。
備考
- GetUpperBoundは要素数ではなく最大インデックスを取得するので、要素数-1の値が返ります。
- 要素数を取得したい場合は以下記事をご覧ください。
→ [C#] 配列の要素数を取得する(Length、GetLength) - GetUpperBoundに存在しない次元を指定すると、System.IndexOutOfRangeExceptionが発生します。
- 配列の次元数を取得したい場合は.Rankを使用します。詳しくは以下記事をご覧ください。
→ [C#] 配列の次元数を取得する(.Rank)