はじめに
C#プログラミングにおいて、配列はデータを一括管理し、効率的に処理を行うために必要不可欠な構造です。配列を正しく理解することは、効率的なコード作成に役立ちます。本記事では、初心者の方でも理解しやすいように、配列の基本的な宣言方法から、初期化、要素の追加方法、さらには多次元配列やジャグ配列の操作方法について丁寧に解説していきます。実際のコード例を交えながら説明するので、ぜひ一緒にコードを書いてみて、理解を深めてください。
配列の基本:宣言と初期化
配列は同じ型のデータをまとめて扱えるため、複数のデータを一括管理する際に非常に便利です。まずは、配列の宣言と初期化の方法を見ていきましょう。
配列の宣言
配列の宣言は、次のように行います。
int[] values;
ここで、int[]は整数型の配列を示し、valuesがその配列の名前です。この段階ではまだ配列のサイズや具体的な要素は設定されていません。
配列の宣言は次のようにさまざまなデータ型でも行えます。
string[] words; // 文字列型の配列
double[] temperatures; // 小数型の配列
bool[] flags; // 真偽値の配列
配列の初期化
宣言だけでは配列を使用することはできないため、次に初期化を行います。初期化は、配列に具体的な要素を割り当てる作業です。
int[] values = new int[5];
上記のコードでは、サイズ5の整数型配列を作成しています。この配列は、デフォルトで全ての要素に0が代入されています。サイズを指定しつつ初期値を設定したい場合は、次のように記述します。
int[] values = new int[] { 10, 20, 30, 40, 50 };
この場合、values配列の各要素には10, 20, 30, 40, 50の値がそれぞれ代入されます。なお、配列のサイズは自動的に要素数から決定されます。
省略した初期化
初期化時にnew演算子を省略することもできます。これは、初期化と同時にすべての要素を設定する場合に有効です。
int[] values = { 1, 2, 3, 4, 5 };
これにより、valuesはサイズ5の配列として作成され、要素が順番に割り当てられます。
空の配列の初期化
場合によっては、後から要素を追加したい場合があり、初期化時にサイズ0の配列を用意することができます。
int[] values = new int[0];
これにより、後ほどサイズ変更や要素追加が容易に行えますが、C#の標準配列は固定サイズのため、要素追加には別のテクニックが必要です。
配列への要素追加方法
C#の配列は、サイズが固定されており、宣言時に決定したサイズを変更することができません。しかし、柔軟に要素を追加・削除するための方法として、Array.ResizeやList<T>クラスを活用することができます。
Array.Resizeでの要素追加
固定サイズの配列に要素を追加したい場合、Array.Resizeメソッドを使うことで配列のサイズを変更し、新しい要素を追加することができます。
int[] values = { 1, 2, 3 };
Array.Resize(ref values, 4);
values[3] = 4;
このコードでは、サイズ3の配列valuesをサイズ4に変更し、新しい要素4を追加しています。Array.Resizeを使用する際には、必ず配列をrefで渡す必要があります。
リストを使った動的な要素追加
配列の代わりに、サイズの可変性が必要な場合には、List<T>クラスが有効です。リストは、サイズが動的に変化するため、要素を簡単に追加・削除することができます。
List<int> values = new List<int> { 1, 2, 3 };
values.Add(4);
このコードでは、リストvaluesに要素4を追加しています。リストを使用することで、配列の固定サイズの制約を気にする必要がなくなり、データの柔軟な操作が可能になります。
さらに、リストには様々なメソッドが用意されており、RemoveやInsertといった操作も簡単に行えます。リストは、特に動的に要素数が変化するシナリオで非常に便利です。
多次元配列の基本操作
C#では、複数の次元を持つ配列、すなわち「多次元配列」もサポートされています。多次元配列は、行列や座標データなどの複雑なデータ構造を扱う際に使用されます。
多次元配列の宣言と初期化
多次元配列を宣言する際は、次のような構文を使用します。
int[,] matrix = new int[2, 3];
ここでは、2行3列の整数型多次元配列matrixを作成しています。また、次のように初期値を指定して初期化することも可能です。
int[,] matrix = {
{ 1, 2, 3 },
{ 4, 5, 6 }
};
このコードでは、2行3列の配列が1から6までの値で初期化されています。行と列の構造を持つため、表形式のデータを扱う際に非常に便利です。
多次元配列の要素へのアクセス
多次元配列の要素にアクセスするには、次のように行番号と列番号を指定します。
int value = matrix[0, 1];
この場合、1行目2列目の要素(値は2)にアクセスしています。また、要素を変更する場合も同様にインデックスを指定して行います。
matrix[1, 2] = 10;
このコードでは、2行目3列目の要素を10に変更しています。
多次元配列の活用例
多次元配列は、例えば座標データや表計算などに利用されることが多いです。次のコードでは、2次元配列を使用して座標データを保持し、それぞれの座標にアクセスしています。
int[,] coordinates = {
{ 0, 1 },
{ 2, 3 },
{ 4, 5 }
};
Console.WriteLine(coordinates[2, 1]); // 結果: 5
このように、データが行列状に整理されていると、データ処理がシンプルになります。
ジャグ配列(階層配列)の操作
C#では、「ジャグ配列」(階層配列)と呼ばれる、不均一な多次元配列も扱うことができます。ジャグ配列は、各行ごとに異なる数の列を持つ特殊な配列です。例えば、ある行には3つの要素が含まれ、別の行には5つの要素が含まれるといった構造を持つ場合に使用します。
ジャグ配列の宣言と初期化
ジャグ配列を宣言するには、次のようにします。
int[][] jaggedArray = new int[3][];
jaggedArray[0] = new int[2];
jaggedArray[1] = new int[3];
jaggedArray[2] = new int[1];
ここでは、3行のジャグ配列を宣言し、それぞれの行に異なる数の列を設定しています。
ジャグ配列の要素の追加とアクセス
ジャグ配列の要素にアクセスする場合、各行の列を個別に指定して操作します。
jaggedArray[0][1] = 5;
int value = jaggedArray[1][2];
このコードでは、1行目の2列目に値5を代入し、2行目の3列目の要素を取得しています。
ジャグ配列は、データが不均一な場合に非常に役立つ配列構造です。
まとめ
C#における配列は、効率的にデータを操作するための強力なツールです。本記事では、配列の基本的な宣言と初期化、要素の追加方法、さらには多次元配列やジャグ配列といった高度な配列操作方法まで幅広く解説しました。配列の操作に慣れることで、データ処理の効率が大幅に向上します。初心者の方も、ぜひこの記事を参考にして、実際にコードを書いてみてください。今後のプログラム開発において、配列は非常に役立つ知識となるでしょう。

