C#で配列の要素・要素数を取得する方法!

C# C#

C#の配列で要素を取得したり、要素数を取得する方法について書いています。
載せているコードについては、.Netのバージョン6(C#のバージョン10)で確認しました。

要素を取得するには?

要素番号を指定して取得する方法と、GetValueメソッドを使う方法があります。

要素番号を指定して取得する

配列の要素は、要素番号を指定して取得することができます。
例えば、下記のように指定して取ってきます。

var drinks = new string[3] {"water", "cola", "coffee"};
var drink = drinks[1];
Console.WriteLine(drink); // cola

要素数が3つのdrinks配列を作成しました。
その後に、drinks配列の要素の1番目を指定して、要素を取ってきています。

取得した要素をdrink変数に入れた後に出力しています。
配列は0番目から数えるので、結果取得した内容の「cola」が出力されました。

GetValueメソッドを使って取得する

GetValueメソッドを使って取得することもできます。
例えば、下記のように使うことができます。

var drinks = new string[3] {"water", "cola", "coffee"};
var drink = drinks.GetValue(2);
Console.WriteLine(drink); // coffee

要素数が3つのdrinks配列を作成しました。
その後に、drinks配列からGetValueメソッドを使って、要素を取ってきました。

2番目をdrink変数に入れた後に出力しました。
「coffee」が表示され、取得できているのが確認できました。

基本的には要素番号を指定する方が簡単なので、前述した方法で良いかと思います。

配列に存在しない要素番号を指定すると?

配列に存在しない要素番号を指定するとエラーになります。

var drinks = new string[3] {"water", "cola", "coffee"};
var drink = drinks[3];
Console.WriteLine(drink);

上記では、配列の3番目を指定していますが、配列は2番目までしか要素がありません。(0から数えます)
そのため、このようにSystem.IndexOutOfRangeExceptionエラーが発生します。

Unhandled exception. System.IndexOutOfRangeException: Index was outside the bounds of the array.

配列を使う際には、要素番号の指定時に配列の範囲外にならないか気をつけましょう。

要素数を取得するには?

配列のLengthプロパティにアクセスすると、要素数を取得することができます。
例えば、下記のように使います。

var drinks = new string[3] {"water", "cola", "coffee"};
Console.WriteLine(drinks.Length); // 3

要素数が3つのdrinks配列を作成しました。
その後に、drinks配列のLengthプロパティにアクセスして、配列の要素数を出力しています。
「3」が出力され、要素数が取れたことが確認できました。

取得される要素数は、配列が宣言されたときの要素数になります。
drinks配列に値が入っていなくても「3」になります。

多次元配列の要素数を取得する

多次元配列の要素数を取得する場合にもLengthプロパティを使うことができます。
多次元配列のn番目の要素数を取得する場合には、GetLengtメソッドが使えます。

例えば、下記のように使います。

var numbers = new int[3, 4] {
                    {1, 2, 3, 4},
                    {10, 20, 30, 40},
                    {40, 20, 22, 30}
                };
Console.WriteLine(numbers.Length); // 12
Console.WriteLine(numbers.GetLength(1)); // 4

多次元なnumbers配列を作成しました。
numbers配列は、4つの要素が入った配列を3つ持っています。

numbers配列からLengthプロパティにアクセスすると、すべての要素数の「12」が取得できました。
numbers配列からGetLengthメソッドを呼んで、1番目を指定すると「4」が取得できました。

GetLengthメソッドはnumbers配列の指定した次元の要素数を取得できます。

var numbers = new int[3, 4, 6];
Console.WriteLine(numbers.GetLength(2)); // 6

コメント

タイトルとURLをコピーしました