C#でArrayクラスのGetUpperBoundメソッドを使う方法
C#におけるGetUpperBound()メソッドとは
C#のArrayクラスに用意されているGetUpperBound()メソッドは、配列内の指定した次元における上限(最大インデックス)を取得します。
このメソッドは、次元を表す整数を引数として受け取り、該当する次元の最終インデックスをint型の値として返します。たとえば、要素数が6の1次元配列の場合、インデックスは0から始まるため、上限は「5」となります。
基本的な使い方
まず、配列を作成し、以下のようにGetUpperBound(0)を呼び出して上限を取得します。
arr.GetUpperBound(0).ToString()
引数の「0」は1次元目を意味します。2次元配列の場合は「1」を指定することで、2次元目の上限を取得できます。
サンプルコード
以下は、C#でGetUpperBound()メソッドを使用する具体例です。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Demo {
class Program {
static void Main(string[] args) {
Array arr = Array.CreateInstance(typeof(String), 6);
arr.SetValue("One", 0);
arr.SetValue("Two", 1);
arr.SetValue("Three", 3);
arr.SetValue("Four", 4);
arr.SetValue("Five", 5);
Console.WriteLine("Upper Bound: {0}", arr.GetUpperBound(0).ToString());
Console.ReadLine();
}
}
}
実行結果
Upper Bound: 5
解説
上記のコードでは、Array.CreateInstance()を使用して、文字列型の要素を6つ持つ配列を生成しています。その後、SetValue()メソッドで各インデックスに値を設定し、GetUpperBound(0)によって1次元目の上限である「5」を出力しています。
なお、この例ではインデックス2の値が未設定ですが、上限の取得には影響しません。GetUpperBound()は、実際に値が格納されているかどうかに関係なく、配列のサイズに基づいた最大インデックスを返すためです。多次元配列を扱う際にも同様に、各次元のインデックス番号を引数として渡すことで、それぞれの上限を確認できます。
-
C#で配列の次元数(ランク)を定義・取得する方法
C#において、配列の次元数(ランク)を調べたい場合は、Arrayクラスが提供する Rank プロパティを使用します。このプロパティは、配列が持つ次元の数を整数値として返します。Rankプロパティの使い方次元数を取得するには、以下のように記述します。arr.Rankここで、arrは対象となる配列です。例えば、次のような2次元配列を考えてみましょう。int[] arr = new int[3,4];行数・列数を取得するにはGetLengthメソッドを使う配列の次元数だけでなく、各次元の要素数(行数や列数など)を取得したい場合は、GetLength メソッドを使用します。引数には対象の次元のインデッ
-
C#のArrayクラスのプロパティとは?主要プロパティと使い方を解説
C#におけるArrayクラスは、すべての配列の基底クラスであり、System名前空間で定義されています。このクラスには、配列のサイズや読み取り専用かどうか、次元数などの情報を取得するための便利なプロパティが多数用意されています。Arrayクラスの主なプロパティ一覧No.プロパティと説明1IsFixedSize配列が固定サイズであるかどうかを示す値を取得します。2IsReadOnly配列が読み取り専用であるかどうかを示す値を取得します。3Length配列のすべての次元に含まれる要素の総数を、32ビット整数(int)として取得します。4LongLength配列のすべての次元に含まれる要素の総数を、