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

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

目次

仕組み 配列とは
作成する 配列の宣言と同時に値を設定する(初期化)
  配列の要素の数を宣言して作成する
取得する 配列の値をfor文で取得する
追加する 要素を追加する
使用する メソッドの引数と戻り値が配列
  配列をリストに変換する
多次元 2次元配列を作成するサンプル
  ジャグ配列を作成するサンプル

配列とは

  • 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[] { "赤", "黄", "青" };
        Console.WriteLine(colors1[0]);//赤
        Console.WriteLine(colors1[1]);//黄
        Console.WriteLine(colors1[2]);//青

        var colors2 = new string[] { "緑", "紫", "茶" };
        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がありません。

 

配列の要素の数を宣言して作成する

配列の要素の数を宣言して作成するサンプルです。
値は後から追加します。

using System;
class Test1
{
    static void Main()
    {
        string[] colors = new string[3];
        colors[0] = "赤";
        colors[1] = "黄";
        colors[2] = "青";
        //colors[3] = "オレンジ"; //インデックスが配列の境界外ですのエラー
        Console.WriteLine(colors[0]);//赤
        Console.WriteLine(colors[1]);//黄
        Console.WriteLine(colors[2]);//青
    }
}

6行目は、 配列の数を指定しています。
7~9行目は、配列へ値をセットしています。添字は0から始まります。
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文で配列の各値を表示しています。

要素を追加する

要素を追加するサンプルです。

using System;
using System.Collections.Generic;

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

        Array.Resize(ref c1, 4);

        c1[3] = "オレンジ";

        foreach (string s in c1)
        {
            Console.WriteLine(s);// 赤 黄 青 オレンジ
        }
    }
}

8行目は、配列です。
10行目は、Array.Resizeで配列の要素の数を増やしています。
ひとつめの引数のrefは、無いとエラーになります。
12行目は追加された配列の要素へ値をセットしています。

メソッドの引数と戻り値が配列

メソッドの引数と戻り値が配列のサンプルです。

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

        string[] b = GetColor(colors);
    }

    private static string[] GetColor(string[] c1)
    {
        return c1;
    }
}

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

配列をリストに変換する

配列をリストに変換するサンプルです。

using System;
using System.Collections.Generic;

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

        List<string> c2 = new List<string>(c1);

        c2.Add("オレンジ");

        foreach (string s in c2)
        {
            Console.WriteLine(s);// 赤 黄 青 オレンジ
        } 
    }
}

8行目は、配列です。
10行目は、配列からリストに変換しています。リストのコンストラクタに配列を指定しています。

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

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

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# for文のサンプル(break/continue)
C# Listのサンプル
C# LINQで配列の値を取得するサンプル

△上に戻る