【C#】配列(Array)の基本的な使い方:宣言、初期化、アクセスの方法

目次

配列(Array)とは

C#プログラミングにおいて、「配列」は、同じデータ型(例: int型、string型など)の複数の値を、連続したメモリ領域に格納するための最も基本的なデータ構造です。

配列を使用することで、個別の変数(score1, score2, score3…)を大量に宣言する代わりに、scoresという一つの変数名でデータをまとめて管理できます。

C#の配列は「固定サイズ」であり、一度作成するとそのサイズ(格納できる要素数)を変更することはできません。(サイズを動的に変更したい場合は List<T> を使用します)。

この記事では、C#で配列を宣言し、初期化し、使用する基本的な方法について解説します。


1. 配列の宣言とインデックスによるアクセス

最も基本的な方法は、newキーワードで配列を作成する際に、要素数(サイズ)を指定することです。

インデックス(Index)によるアクセス: 配列の各要素には、0から始まる「インデックス(添え字)」と呼ばれる番号が割り当てられます。

  • [0] は 1番目の要素
  • [1] は 2番目の要素
  • [サイズ - 1] が 最後の要素

コード例1:サイズ指定と代入

まず5個のstringを格納できる配列を作成し、その後、インデックスを使って各位置に値を代入します。

using System;

public class ArrayDeclarationExample
{
    public static void Main()
    {
        // 1. サイズを指定して、5個の string を格納できる配列を作成
        // (この時点では、中身はすべて null)
        string[] teamNames = new string[5];

        // 2. インデックス [0] から [4] を使って値を代入
        teamNames[0] = "Team Alpha";
        teamNames[1] = "Team Bravo";
        teamNames[2] = "Team Charlie";
        teamNames[3] = "Team Delta";
        teamNames[4] = "Team Echo";
        // teamNames[5] = "Team Foxtrot"; // エラー: IndexOutOfRangeException

        Console.WriteLine("--- インデックスによるアクセス ---");
        
        // 3. インデックスを指定して値を読み出す
        Console.WriteLine($"最初のチーム: {teamNames[0]}");
        Console.WriteLine($"3番目のチーム: {teamNames[2]}");
    }
}

出力結果:

--- インデックスによるアクセス ---
最初のチーム: Team Alpha
3番目のチーム: Team Charlie

2. 配列の宣言と同時に初期化

配列に格納したい値が最初から決まっている場合、new{}(初期化子)を使って、宣言と同時に値を設定するのが一般的です。

この方法では、コンパイラが {} 内の要素数を自動的にカウントするため、サイズ([5]など)を指定する必要はありません。

コード例2:宣言時の初期化

using System;

public class ArrayInitializeExample
{
    public static void Main()
    {
        // 宣言と同時に、{ } 内の値で初期化する
        int[] scores = new int[] { 85, 92, 78, 100, 64 };

        Console.WriteLine("--- 初期化された配列 ---");
        Console.WriteLine($"2番目のスコア: {scores[1]}"); // 92
    }
}

3. 型推論による初期化 (var と new[])

C# 3.0以降、配列の初期化はさらに簡潔に記述できます。

varキーワードと new [] { ... } を組み合わせると、コンパイラが {} の中身(例: 10, 20)を見て、「これはint型の配列だな」と自動的に型を推論してくれます。

コード例3:varnew []

この方法は、特に intstring のような単純な配列を初期化する際によく使われる、現代的な書き方です。

using System;

public class ArrayTypeInferenceExample
{
    public static void Main()
    {
        // new [] { ... } の中身から、
        // コンパイラが自動的に string[] 型であると推論する
        var weekdays = new[] { "Monday", "Tuesday", "Wednesday", "Thursday", "Friday" };

        Console.WriteLine("--- 型推論による初期化 ---");
        Console.WriteLine($"金曜日: {weekdays[4]}");
    }
}

配列の操作:Lengthforeach ループ

配列を操作する際、2つの重要な機能があります。

  • Length プロパティ: 配列の総要素数(サイズ)をint型で返します。(例: weekdays.Length5 を返します)
  • foreach ループ: 配列の先頭([0])から末尾まで、全要素を順番に処理するための最も安全で簡単な方法です。

コード例4:Lengthforeach

using System;

public class ArrayIterationExample
{
    public static void Main()
    {
        var scores = new[] { 85, 92, 78, 100, 64 };
        int totalScore = 0;

        // 1. Length プロパティで要素数を取得
        Console.WriteLine($"データ(要素数): {scores.Length} 件");

        // 2. foreach ループで全要素を安全に処理
        foreach (var score in scores)
        {
            Console.WriteLine($"処理中のスコア: {score}");
            totalScore += score;
        }

        double average = (double)totalScore / scores.Length;
        Console.WriteLine($"---");
        Console.WriteLine($"合計点: {totalScore}");
        Console.WriteLine($"平均点: {average:F1}"); // F1: 小数点以下1桁
    }
}

出力結果:

データ(要素数): 5 件
処理中のスコア: 85
処理中のスコア: 92
処理中のスコア: 78
処理中のスコア: 100
処理中のスコア: 64
---
合計点: 419
平均点: 83.8

まとめ

C#の配列(Array)は、固定サイズの同型データを扱うための基本です。

  • 宣言: new string[5](サイズ指定)または new [] { "A", "B" }(初期化)で作成します。
  • アクセス: myArray[0] のように、0から始まるインデックスで読み書きします。
  • 反復処理: foreachループを使用するのが最も一般的で安全です。
  • サイズ取得: myArray.Length プロパティを使用します。
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

私が勉強したこと、実践したこと、してることを書いているブログです。
主に資産運用について書いていたのですが、
最近はプログラミングに興味があるので、今はそればっかりです。

目次