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

C#C#

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

PR

要素を取得するには?

要素番号を指定して取得する方法と、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.

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

PR

要素数を取得するには?

配列の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

コメント

Ads Blocker Image Powered by Code Help Pro

広告ブロッカーが検出されました。

ブラウザの拡張機能を使用して広告ブロックをしていることが確認できました。 ブラウザの広告ブロッカー機能を無効にしていただくか、codelikes.comをホワイトリストに追加し、更新をクリックしてください。 お手数ですが、よろしくお願いします🙇‍♂️
タイトルとURLをコピーしました