多次元配列の仕組みを知る
行と列に並んだイメージを持つ配列を、2次元配列と呼びます。
構文:2次元配列の宣言・作成・利用
型名[,] 配列名; //2次元配列を宣言します
配列名 = new 型名[行の個数, 列の個数]; //2次元配列を作成します
配列名[0,0] = 値; //2次元配列を利用します
…
構文:2次元配列の初期化
型名[,] 配列名 = new 型名[行の個数, 列の個数];
2次元以上にハコが並んだイメージをもつ配列は多次元配列と呼ばれます。多次元配列の場合も同様に次元を増やして扱うことができます。
構文:2次元配列の初期化と値の設定
型名[,] 配列名 = new 型名[行の個数, 列の個数]{
{値,値,値…};
{値,値,値…};
{値,値,値…};
};
つまり、文字列型の配列の場合は、次のように配列をつくることができるわけです。
string [,] str = new string[4,3]{
{"東京","Tokyo","とうきょう"},
{"大阪","Osaka","おおさか"},
{"名古屋","Nagoya","なごや"},
{"福岡","Fukuoka","ふくおか"}
};
それでは、実際に2次元配列を利用してみましょう。
using System.Windows.Forms;
using System.Drawing;
namespace lesson4
{
class sample8
{
static void Main(string[] args)
{
Form fm = new Form(); //フォームを作成します。
fm.Text = "ようこそC#へ!"; //フォームのタイトルを設定します
fm.Width = 300; fm.Height = 100;
Label lb = new Label();
lb.Width = fm.Width;
lb.Height = fm.Height;
//4行*3列の多次元配列を作成し、初期値を与えます
string[,] str = new string[4,3]
{
{"東京","Tokyo","とうきょう"},
{"大阪","Osaka","おおさか"},
{"名古屋","Nagoya","なごや"},
{"福岡","Fukuoka","ふくおか"},
};
string temp = "";
for (int i = 0; i < 4; i++) //i行分繰り返します
{
for (int j = 0; j < 3; j++) //j列分繰り返します
{
temp += str[i, j]; //i行*j列の配列要素の値を得ます
temp += ",";
}
temp += "\n";
}
lb.Text = temp;
lb.Parent = fm;
Application.Run(fm); //フォームを指定して起動します
}
}
}
実行画面
構文:2次元配列の利用
配列名[i,j]
ジャグ配列の仕組みを知る
2次元配列では升目のように並んだイメージになります。C#ではこれとは列に、配列の要素の長さが異なる配列を指定することもできます。
using System.Windows.Forms;
using System.Drawing;
namespace lesson4
{
class sample9
{
static void Main(string[] args)
{
Form fm = new Form(); //フォームを作成します。
fm.Text = "ようこそC#へ!"; //フォームのタイトルを設定します
fm.Width = 300; fm.Height = 100;
Label lb = new Label();
lb.Width = fm.Width;
lb.Height = fm.Height;
//4行*3列の多次元配列を作成し、初期値を与えます
string[][] str = new string[4][] //ジャグ配列を作成します
{
new string[]{"東京","Tokyo","とうきょう","トウキョウ"},
new string[]{"大阪","Osaka","おおさか"},
new string[]{"名古屋","Nagoya","なごや","ナゴヤ"},
new string[]{"福岡","Fukuoka","ふくおか"},
//各配列要素の長さは決まっていません
};
string temp = "";
for (int i = 0; i < str.Length; i++) //i行分繰り返します
{
for (int j = 0; j < str[i].Length; j++) //j列分繰り返します
{
temp += str[i][j]; //i行*j列の配列要素の値を得ます
temp += ",";
}
temp += "\n";
}
lb.Text = temp;
lb.Parent = fm;
Application.Run(fm); //フォームを指定して起動します
}
}
}
このようないびつなかたちの配列をジャグ配列(jugged array)といいます。ジャグ配列は次のように作成します。
構文:ジャグ配列の宣言と作成
型名[][] 配列名;
配列名 = new 型名[要素数][];
配列名[0] = new 型名[0番目の要素数];
配列名[1] = new 型名[1番目の要素数];
…
構文:ジャグ配列の宣言と作成
型名[][] 配列名 = new 型名[要素数][]
{
new 型名[0番目の要素数],
new 型名[1番目の要素数],
…
}
構文:ジャグ配列の利用
配列名[i][j]
コメント