【やさしいC#】lesson4.4 配列の応用

C#

多次元配列の仕組みを知る

  行と列に並んだイメージを持つ配列を、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]

ジャグ配列の各配列要素の数は異なていてもかまいません。

コメント

タイトルとURLをコピーしました