ここでC#での配列の宣言と初期化、配列要素の取得など配列の操作について紹介します。

配列の宣言と初期化

1次元配列

1次元配列の宣言と初期化の書式は以下のようになります。

構文(1次元配列)

var 変数名 = new 型名[] { 値1, 値2, 値3, ・・・ };

以下は1次元配列の宣言と初期化の例です。

var arr = new int[] { 10, 20, 30, 40, 50 };

var total = 0;
for (var i = 0; i < arr.Length; i++)
{
    total += arr[i];
}
Console.WriteLine($"合計は{total}です");


2次元配列

2次元配列の宣言と初期化の書式は以下のようになります。

構文(2次元配列)

var 変数名 = new 型名[,]
{
    { 値1, 値2, 値3, ・・・ },
    { 値1, 値2, 値3, ・・・ },
    { 値1, 値2, 値3, ・・・ }

};

以下は2次元配列の宣言と初期化の例です。

var arr = new int[,]
{
    { 10, 20, 30 },
    { 40, 50, 60 },
    { 70, 80, 90 },
    { 100, 110, 120 }
};

for (var i = 0; i < arr.GetLength(0); i++)
{
    for (var j = 0; j < arr.GetLength(1); j++)
    {
        Console.WriteLine(arr[i, j]);
    }
}


foreach文を使って配列から要素を取り出す

配列の要素を取り出すには、for文を使っても取り出せますが、foreach文を使用するとfor文より簡単な書き方になります。

構文


foreach (型 変数名 in 配列名)
{
    処理;
}

以下は foreach文を使って配列から要素を取り出す例です。

var arr = new int[] { 10, 20, 30, 40, 50 };

var total = 0;
foreach (var num in arr)
{
    total += num;
}
Console.WriteLine($"合計は{total}です");


補足

foreach文は文字列に対しても使うことができます。以下は文字列から1文字ずつ取り出す例です。

var str = "abcde";

foreach (var c in str)
{
    Console.WriteLine(c);
}


配列に要素を追加する

配列に要素を追加するには Array.Resizeメソッドを使います。

構文


Array.Resize(ref 配列, 変更後の要素数の上限);

以下は Array.Resizeメソッドを使って配列の要素数を5から6に増やす例です。

var arr = new int[5] { 10, 20, 30, 40, 50 };

Array.Resize(ref arr, arr.Length + 1);

arr[arr.Length - 1] = 60;

for (var i = 0; i < arr.Length; i++)
{
    Console.WriteLine(arr[i]);
}
Console.WriteLine($"配列の要素数は{arr.Length}");


以下は Array.Resizeメソッドを使って配列の要素数を5から4に減らす例です。

var arr = new int[5] { 10, 20, 30, 40, 50 };

Array.Resize(ref arr, arr.Length - 1);

for (var i = 0; i < arr.Length; i++)
{
    Console.WriteLine(arr[i]);
}
Console.WriteLine($"配列の要素数は{arr.Length}");


配列をコピーする

配列を参照先を変えて別の配列にコピーするには Array.Copyメソッドを使います。

構文


Array.Copy(コピー元配列, コピー先配列, コピーする要素数);

以下は Array.Copyメソッドを使って配列arr1を配列arr2にコピーする例です。

int[] arr1 = new int[] { 1, 2, 3 };
int[] arr2 = new int[arr1.Length];

Array.Copy(arr1, arr2, arr1.Length);

for (var i = 0; i < arr2.Length; i++)
{
    Console.Write(arr2[i]);
}
// 実行結果:123


配列の一部の要素を指定してコピーする

配列の一部の要素を別の配列にコピーするには Array.Copyメソッドを使います。

構文


Array.Copy(コピー元配列, コピー元配列の開始位置, コピー先配列, コピー先配列の位置, コピーする要素数);

以下は Array.Copyメソッドを使って配列arr1の2番目から2要素を配列arr2にコピーする例です。

int[] arr1 = new int[] { 1, 2, 3 };
int[] arr2 = new int[arr1.Length -1];

Array.Copy(arr1, 1, arr2, 0, arr1.Length - 1);

for (var i = 0; i < arr2.Length; i++)
{
    Console.Write(arr2[i]);
}
// 実行結果:23


以上、C#での配列の宣言と初期化、配列要素の取得など配列の操作について解説しました。