TECH I.S.

C# 多次元配列


多次元配列

前章では、一次元配列とも呼ばれる配列について学びました。この配列はとても便利で、C#でプログラミングをするときによく使うものです。ただし、行と列を持つ表のような形式でデータを保存したい場合は、多次元配列に慣れる必要があります。

多次元配列は基本的に配列の配列です。

配列は、任意の数の次元を持つことができます。最も一般的なのは2次元配列(2D)です。


二次元配列

2次元配列を作るには、各配列を中括弧で囲み、角括弧の中にカンマ(,)を入れます。

{.language-csharp .techis-white}
int[,] numbers = { {1, 4, 2}, {3, 6, 8} };

お役立ち情報:コンマ[,]1つは配列が2次元であることを示します。 3次元配列の場合は、 int[,,]のように2つのコンマがあります。

numbers要素として2つの配列を持つ配列になりました。最初の配列要素には1、4、2の3つの要素が含まれ、2番目の配列要素には3、6、8が含まれます。これを視覚化するには、配列を行と列を持つテーブルと考えてください。

2次元配列の要素へのアクセス

2次元配列の要素にアクセスするには、2つのインデックスを指定する必要があります。1つは配列用で、もう1つはその配列内の要素用です。または、テーブルの視覚化を念頭に置いてください。1つは行用で、もう1つは列用です(以下の例を参照)。

このステートメントは、numbers配列の最初の行(0)3列目(2)の要素の値にアクセスします。

{.language-csharp .techis-white}
int[,] numbers = { {1, 4, 2}, {3, 6, 8} };
Console.WriteLine(numbers[0, 2]); // Outputs 2

次のことを覚えておいてください:配列インデックスは0から始まります。[0]が最初の要素で、[1]は2番目の要素などです。


2次元配列の要素を変更する

要素の値を変更することもできます。

次の例では、最初の行(0)最初の列(0)の要素の値を変更します。

{.language-csharp .techis-white}
int[,] numbers = { {1, 4, 2}, {3, 6, 8} };
numbers[0, 0] = 5; // Change value to 5
Console.WriteLine(numbers[0, 0]); // Outputs 5 instead of 1


2次元配列のループ

foreachループを使用して、2次元配列の要素を簡単にループできます。

{.language-csharp .techis-white}
int[,] numbers = { {1, 4, 2}, {3, 6, 8} };
foreach (int i in numbers)
{
Console.WriteLine(i);
}

また、for ループを使用する事も出来ます。多次元配列の場合、配列の次元ごとに 1つのループが必要です。

ループを実行する回数を指定するにはLengthの代わりにGetLength()を使用する必要があることに注意してください。

{.language-csharp .techis-white}
int[,] numbers = { {1, 4, 2}, {3, 6, 8} };
for (int i = 0; i < numbers.GetLength(0); i++)
{
for (int j = 0; j < numbers.GetLength(1); j++)
{
Console.WriteLine(numbers[i, j]);
}
}


プログラミング学習を加速させる

プログラミングをプロの講師に教えてもらいませんか。

テックアイエスのプログラミングスクールは初心者も大歓迎です。年齢制限もありません。転職・副業に強く、挫折させない手厚いサポートで稼ぐ力を身につけましょう!

スクールの詳細