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]);
}
}
プログラミング学習を加速させる
プログラミングをプロの講師に教えてもらいませんか。