C# 2次元配列の宣言と初期化

2次元配列とは、駅のコインロッカーのようなものです。
要素を入れる箱を、行方向(縦)と列方向(横)に並べたものです。
## 2次元配列の宣言と作成
宣言と作成を行うことで、2次元配列をつくることができます。
〈 宣言 〉 とは、2次元配列の型と名前を決めることで、 〈 作成 〉 とはメモリ上に2次元配列をつくることです。

型名[,]配列名;                                         // 2次元配列の宣言
配列名 = new 型名[行の数, 列の数];     // 2次元配列の作成

は配列の型名と配列名を決めて、2次元配列の宣言をしています。
〈 型名[] 〉 と書くと1次元配列ですが、 〈 型名[,] 〉 と書くと2次元配列になります。
は配列の行数と列数を決め、new演算子でメモリ上につくった2次元配列をの配列に代入しています。
これで、行数と列数を決めた2次元配列がメモリ上につくられました。
## 2次元配列の宣言と作成を同時に行う
さきほどは、2次元配列の宣言と作成を別々に行いましたが、同時に行うこともできます。

型名[,]配列名 = new 型名[行の数, 列の数];

配列の宣言と作成を同時に行っています。
=(代入演算子)の右辺で行数と列数を決めた2次元配列をメモリ上につくり、左辺の配列に代入しています。
## 2次元配列の好きな場所に値を代入

配列名[行方向の添え字, 列方向の添え字] = 値;

2次元配列に値を代入しています。
〈 行方向の添え字 〉 とは配列の行の番号で、〈 列方向の添え字 〉 とは配列の列の番号です。
[]に行と列の添え字を指定することで、2次元配列の好きな場所に代入できます。
## 2次元配列の宣言の例文

using static System.Console;
class Test { static void Main() { string[,] kago; // 2次元配列kagoの宣言 kago = new string[2, 2];// 2次元配列kagoにメモリ上につくった行2x列2の2次元配列を代入 kago[0, 0] = "イチゴ"; // 2次元配列kagoの添え字[0, 0]に 〈 イチゴ 〉 を代入 Write(kago[0, 0]); // 2次元配列kagoの添え字[0, 0]の要素を表示 } }
イチゴ
string[,] kago;

string型の2次元配列kagoの宣言をしています。

kago = new string[2, 2];

2次元配列kagoに、メモリ上につくった行2x列2の2次元配列を代入しています。
を同時に行い、 〈 string[,] kago = new string[2, 2]; 〉 と書くこともできます。

kago[0, 0] = “イチゴ”;

2次元配列kagoの0行目、0列目の箱に 〈 イチゴ 〉 を代入しています。

## 2次元配列の初期化
2次元配列の初期化とは、2次元配列の宣言と作成と初期値の代入をすることです。

// new演算子を省略した場合
型名[,]配列名 = {     // 2次元配列の宣言
    { 値, 値, … },
{ 値, 値, … },     // 2次元配列に値を代入
};
// new演算子を省略しない場合 型名[,]配列名 = new 型名[行の数, 列の数] { { 値, 値, … }, { 値, 値, … }, };
型名[,]配列名

配列の型名と名前を決めて、2次元配列の宣言をします。

{ 値, 値, … },
{ 値, 値, … },

2次元配列に値を代入しています。
ブロックの数は、左側の添え字の数になります。
1つのブロックの値の数は、右側の添え字の数になります。
好きな添え字の箱に値を代入できます。

型名[,]配列名 = new 型名[行の数, 列の数] {
    { 値, 値, … },
    { 値, 値, … },
};

new演算子を省略しないでこのように書くこともできますが、冗長になってしまう為あまりこの書き方はしません。

## 2次元配列の初期化の例文

using static System.Console;
class Test { static void Main() { string[,] kago = { // 2次元配列kagoの宣言 { "イチゴ", "ichigo" }, // 添え字[0, 0]と[0, 1]の値を指定 { "ミカン", "mikan" }, // 添え字[1, 0]と[1, 1]の値を指定 }; Write(kago[1, 1]); // 添え字[1, 1]の要素の 〈 mikan 〉 を表示 } }
mikan
string[,] kago

配列の型名と名前を指定し、2次元配列kagoの宣言をしています。

{ “イチゴ”, “ichigo” },

添え字[0, 0]に 〈 イチゴ 〉 を添え字[0, 1]に 〈 ichigo 〉 を代入しています。

{ “ミカン”, “mikan” },

添え字[1, 0]に 〈 ミカン 〉 を添え字[1, 1]に 〈 mikan 〉 を代入しています。

Write(kago[1, 1]);

添え字[1, 1]の要素の 〈 mikan 〉 を表示しています。