C# 配列の仕組みと使い方のサンプル

C#の配列の仕組みと使い方のサンプルです。

目次

配列とは

  • 1つの変数で同じ型の複数の値を保持できます。
  • 各項目を要素(element)といいます。
  • 添字の先頭は0から始まります。添字とは何番目の配列の要素かを表す数値です。
  • 以下は、MicrosoftのC# プログラミング ガイドの配列のリンクです。
    https://docs.microsoft.com/ja-jp/dotnet/csharp/programming-guide/arrays/

配列を作成する

配列を作成するサンプルです。

using System;
class Test1
{
    static void Main()
    {
        string[] colors1 = new string[3] { "赤", "黄", "青" };
        Console.WriteLine(colors1[0]);//赤
        Console.WriteLine(colors1[1]);//黄
        Console.WriteLine(colors1[2]);//青

        var colors2 = new string[3] { "緑", "紫", "茶" };
        Console.WriteLine(colors2[0]);//緑
        Console.WriteLine(colors2[1]);//紫
        Console.WriteLine(colors2[2]);//茶

        var colors3 = new[] { "白", "黒", "灰" };
        Console.WriteLine(colors3[0]);//白
        Console.WriteLine(colors3[1]);//黒
        Console.WriteLine(colors3[2]);//灰
    }
}

6行目は、配列の宣言時に配列の値を設定します。
11行目は、6行目と比べて型名のstring[ ]の記述がありません。代わりにvarを使用しています。
16行目もvarを使用しています。また11行目と比べてnewの後のstringが無く、[3]を[ ]としています。

 

配列を作成する(最初に配列の数を指定)

配列を作成するサンプルです。
最初に配列の数を指定して後から値を追加します。

using System;
class Test1
{
    static void Main()
    {
        string[] colors = new string[3];
        colors[0] = "赤";
        colors[1] = "黄";
        colors[2] = "青";
        Console.WriteLine(colors[0]);//赤
        Console.WriteLine(colors[1]);//黄
        Console.WriteLine(colors[2]);//青

    }
}

6行目は、 配列の数を指定しています。
7~9行目は、配列へ値をセットしています。
10~12行目は、配列の各値を表示しています。

 

配列の値をfor文で取得する

配列の値をfor文で取得するサンプルです。

using System;
class Test1
{
    static void Main()
    {
        string[] colors1 = new string[3] { "赤", "黄", "青" };

        foreach (string s in colors1)
        {
            Console.WriteLine(s);// 赤 黄 青
        }

        for (int i = 0; i < colors1.Length; i++)
        {
            Console.WriteLine(colors1[i]);// 赤 黄 青
        }
    }
}

8~11行目は、foreach文で配列の各値を表示しています。
13~16行目は、for文で配列の各値を表示しています。
foreach文の方がシンプルです。

 

メソッドの引数/戻り値が配列の場合

using System;
class Test1
{
    static void Main()
    {
        string[] colors = new string[3] { "赤", "黄", "青" };

        string[] b = GetColor(colors);
    }

    private static string[] GetColor(string[] c1)
    {
        foreach (string s in c1)
        {
            Console.WriteLine(s);// 赤 黄 青
        }
        return c1;
    }
}

8行目は、呼び出し元のメソッドです。引数と戻り値が配列です。
11行目は、定義されたメソッドです。引数と戻り値が配列です。

 

多次元配列を作成するサンプル

多次元配列を作成するサンプルです。

using System;
class Test1
{
    static void Main()
    {
        string[,] colors = new string[2,3]
        {
            {"赤1","黄1","青1"},
            {"赤2","黄2","青2"}
        };

        Console.WriteLine(colors[0, 0]);// 赤1
        Console.WriteLine(colors[0, 1]);// 黄1
        Console.WriteLine(colors[0, 2]);// 青1
        Console.WriteLine(colors[1, 0]);// 赤2
        Console.WriteLine(colors[1, 1]);// 黄2
        Console.WriteLine(colors[1, 2]);// 青2
    }
}

6~10行目は、2次元配列を作成しています。
12~18行目は、2次元配列の値を表示しています。

 

ジャグ配列を作成するサンプル

ジャグ配列を作成するサンプルです。
ジャグ配列とは、それぞれの要素の長さが異なる配列です。

using System;
class Test1
{
    static void Main()
    {
        string[][] colors = new string[3][]
        {
            new string[]{"赤1",},
            new string[]{"赤2","黄2"},
            new string[]{"赤3","黄3","青3"}
        };

        Console.WriteLine(colors[0][0]);// 赤1
//      Console.WriteLine(colors[0][1]);// 
//      Console.WriteLine(colors[0][2]);// 
        Console.WriteLine(colors[1][0]);// 赤2
        Console.WriteLine(colors[1][1]);// 黄2
//      Console.WriteLine(colors[1][2]);// 
        Console.WriteLine(colors[2][0]);// 赤3
        Console.WriteLine(colors[2][1]);// 黄3
        Console.WriteLine(colors[2][2]);// 青3
    }
}

6~11行目は、ジャグ配列を作成しています。
13~21行目は、ジャグ配列の値を表示しています。

関連の記事

C# if文のサンプル
C# switch文のサンプル
C# while文とdo while文のサンプル
C# for文のサンプル(foreach/break/continue)
C# LINQで配列の値を取得するサンプル

△上に戻る