C#のコレクション初期化子の便利な使い方を完全ガイド!初心者でもわかる基礎解説
生徒
「先生、C#で配列とかリストを作るときに、いちいち要素を追加していくのが面倒なんですが、もっと簡単な方法はないんですか?」
先生
「良いところに気がつきましたね。C#にはコレクション初期化子という便利な書き方があって、最初からまとめてデータを入れておけます。」
生徒
「え、それって配列の中に数字を入れるみたいに、リストや辞書でもできるんですか?」
先生
「そうです!では、基本の使い方を一緒に見ていきましょう。」
1. コレクション初期化子とは?
コレクション初期化子とは、C#でリスト(List)や辞書(Dictionary)などのコレクションを作るときに、わざわざAddメソッドで1つずつ追加しなくても、最初からまとめて要素を入れて初期化できる便利な仕組みです。
例えば、リストを作る場合、普通はこう書きます。
List<int> numbers = new List<int>();
numbers.Add(1);
numbers.Add(2);
numbers.Add(3);
これをコレクション初期化子を使うと、次のように短く書けます。
List<int> numbers = new List<int> { 1, 2, 3 };
1
2
3
とてもスッキリしていますね。まるで最初から中身が入った箱を用意するようなイメージです。
2. 配列とリストでの違い
C#では配列とリストはよく似ていますが、書き方に少し違いがあります。配列は固定の長さを持ち、リストは可変長で要素を自由に追加できます。
配列の場合:
int[] array = { 1, 2, 3 };
リストの場合:
List<int> list = new List<int> { 1, 2, 3 };
見た目は似ていますが、配列は固定サイズ、リストは柔軟に追加できるという大きな違いがあります。
3. Dictionary(辞書型)のコレクション初期化子
Dictionary(ディクショナリ、辞書型)は、キーと値のペアを持つコレクションです。例えば、学生の名前と点数を対応付けるような場合に便利です。
普通の書き方:
Dictionary<string, int> scores = new Dictionary<string, int>();
scores.Add("Alice", 90);
scores.Add("Bob", 80);
scores.Add("Charlie", 70);
コレクション初期化子を使うと:
Dictionary<string, int> scores = new Dictionary<string, int>
{
{ "Alice", 90 },
{ "Bob", 80 },
{ "Charlie", 70 }
};
Alice: 90
Bob: 80
Charlie: 70
見やすくスッキリ書けますし、データの内容も一目でわかります。
4. 複雑なオブジェクトを初期化する
コレクション初期化子は、数字や文字だけでなく、クラスのオブジェクトを入れるときにも使えます。例えば、Personクラスを用意して、そのインスタンスをリストにまとめて入れることができます。
class Person
{
public string Name { get; set; }
public int Age { get; set; }
}
List<Person> people = new List<Person>
{
new Person { Name = "Alice", Age = 20 },
new Person { Name = "Bob", Age = 25 },
new Person { Name = "Charlie", Age = 30 }
};
Alice (20)
Bob (25)
Charlie (30)
このように書けば、複数のオブジェクトを最初からまとめて用意できるので、コードがとてもシンプルになります。
5. 初期化子を使うメリット
- コードが短くなる(Addを何回も書かなくてよい)
- 見やすい(どんなデータが入っているのか一目でわかる)
- 修正が簡単(新しい要素を追加・削除しやすい)
特にプログラミング初心者にとっては、シンプルで見やすいコードを書くことが大切です。C#のコレクション初期化子はその助けになる便利な仕組みです。