ここで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#での配列の宣言と初期化、配列要素の取得など配列の操作について解説しました。