PR

【C#】配列の宣言と初期化の基本を理解できてますか?

【C#】
広告

はじめに

C#プログラミングにおいて、配列は非常に重要なデータ構造の一つです。配列を効果的に利用することで、複数のデータを一元管理し、効率的に処理することが可能になります。本記事では、C#における配列の宣言と初期化の基本について詳しく解説します。初学者の方にも理解しやすいように、具体的なコード例を交えながら説明していきます。

配列の宣言

配列の基本

配列は、同じ型のデータを連続して格納するためのデータ構造です。C#では、配列はArrayクラスとして実装されています。配列の宣言は以下のように行います。

int[] numbers;

この例では、int型の配列numbersを宣言しています。この時点では、配列のサイズや内容は指定されていません。

配列のサイズ指定

配列を宣言する際に、そのサイズを指定することもできます。サイズを指定すると、配列の要素数が固定され、その後変更することはできません。

int[] numbers = new int[5];

この例では、5つのint型要素を持つ配列numbersを宣言しています。各要素は自動的にデフォルト値(int型の場合は0)で初期化されます。

配列の初期化

一括初期化

配列の宣言と同時に、初期値を設定することができます。これを一括初期化と呼びます。

int[] numbers = new int[] { 1, 2, 3, 4, 5 };

この例では、5つの要素を持つ配列numbersが宣言され、それぞれの要素に初期値が設定されています。この場合、配列のサイズは初期値の数に基づいて自動的に決定されます。

短縮形

C#では、配列の宣言と初期化を短縮形で記述することも可能です。

int[] numbers = { 1, 2, 3, 4, 5 };

この例は、前述の一括初期化と同じ結果を得るための短縮形です。初学者の方にもわかりやすく、よく使われる方法です。

空の配列の初期化

空の配列を初期化する場合、要素数を指定して宣言します。

int[] numbers = new int[0];

この例では、要素数が0のint型配列numbersを宣言しています。この配列には要素が存在しないため、追加や変更を行うことはできません。

動的初期化

配列の初期化は動的に行うことも可能です。例えば、ループを使用して配列の各要素に値を設定することができます。

int[] numbers = new int[5];
for (int i = 0; i < numbers.Length; i++)
{
    numbers[i] = i * 2;
}

この例では、5つの要素を持つ配列numbersを宣言し、各要素にi * 2の値を設定しています。これにより、numbers配列には0, 2, 4, 6, 8が格納されます。

特殊な配列の初期化

多次元配列

C#では、多次元配列を宣言・初期化することもできます。多次元配列は、行列のようなデータ構造を扱うのに便利です。

int[,] matrix = new int[3, 3];

この例では、3行3列のint型多次元配列matrixを宣言しています。各要素はデフォルト値で初期化されます。

ジャグ配列

ジャグ配列(ジャグドアレイ)は、不揃いの多次元配列です。各行の要素数が異なる場合に使用されます。

int[][] jaggedArray = new int[3][];
jaggedArray[0] = new int[2];
jaggedArray[1] = new int[3];
jaggedArray[2] = new int[4];

この例では、3つの要素を持つジャグ配列jaggedArrayを宣言しています。各要素には異なる長さの配列が格納されています。

配列の操作

配列の要素へのアクセス

配列の要素にアクセスするには、インデックスを使用します。インデックスは0から始まります。

int[] numbers = { 1, 2, 3, 4, 5 };
int firstElement = numbers[0]; // 1
int lastElement = numbers[numbers.Length - 1]; // 5

この例では、numbers配列の最初の要素と最後の要素にアクセスしています。

配列の要素の変更

配列の要素は、インデックスを指定して変更することができます。

int[] numbers = { 1, 2, 3, 4, 5 };
numbers[0] = 10; // 最初の要素を変更
numbers[4] = 50; // 最後の要素を変更

この例では、numbers配列の最初の要素を10に、最後の要素を50に変更しています。

配列のメソッド

Array.Sort

Array.Sortメソッドを使用すると、配列の要素を昇順にソートすることができます。

int[] numbers = { 5, 3, 4, 1, 2 };
Array.Sort(numbers);

この例では、numbers配列の要素が1, 2, 3, 4, 5にソートされます。

Array.Reverse

Array.Reverseメソッドを使用すると、配列の要素を逆順に並べ替えることができます。

int[] numbers = { 1, 2, 3, 4, 5 };
Array.Reverse(numbers);

この例では、numbers配列の要素が5, 4, 3, 2, 1に逆順に並べ替えられます。

配列のコピー

Array.Copy

Array.Copyメソッドを使用すると、配列の要素を他の配列にコピーすることができます。

int[] source = { 1, 2, 3, 4, 5 };
int[] destination = new int[5];
Array.Copy(source, destination, source.Length);

この例では、source配列の要素がdestination配列にコピーされます。

Clone

Cloneメソッドを使用して、配列の完全なコピーを作成することも可能です。

int[] numbers = { 1, 2, 3, 4, 5 };
int[] clone = (int[])numbers.Clone();

この例では、numbers配列のクローンがclone配列として作成されます。

配列とコレクション

C#では、配列以外にもさまざまなコレクションが提供されています。例えば、List<T>は動的な配列として使用することができ、要素の追加や削除が容易です。

List<int> numbers = new List<int> { 1, 2, 3, 4, 5 };
numbers.Add(6);
numbers.Remove(3);

この例では、List<int>を使用して要素の追加と削除を行っています。List<T>は、配列よりも柔軟性が高く、多くの場面で便利に使用することができます。

まとめ

本記事では、C#における配列の宣言と初期化の基本について詳しく解説しました。配列の宣言方法、初期化方法、要素へのアクセス方法、配列の操作メソッド、配列のコピー方法、さらには配列とコレクションの違いについて説明しました。これらの基本を理解することで、C#プログラミングにおいて配列を効果的扱えるようになるでしょう。

広告
【C#】
広告
タイトルとURLをコピーしました