【C#】C#配列とコレクションを解説 - わかりやすい例で解説
2024-08-19
2024-08-19
プログラミングでは、データを効率よく管理することがとても重要です。そこで使われるのが、配列やコレクションと呼ばれるデータ構造です。これらは、データをグループ化して管理したり、データに素早くアクセスしたりするのに役立ちます。
今回は、C#
における配列、リスト、ディクショナリについて、日常生活のたとえを交えながらわかりやすく解説していきます。
配列(Array)
配列は、同じ種類のものを一列に並べて管理するためのものです。たとえば、「冷蔵庫の中に並んでいる飲み物」をイメージしてみましょう。冷蔵庫にはジュースやお茶が決まった数だけ並んでいます。この飲み物たちが配列です。
配列の宣言と初期化
配列は、冷蔵庫に入れる飲み物の種類と数をあらかじめ決めておく必要があります。これが「宣言と初期化」です。
// 冷蔵庫に5本の飲み物を準備する
string[] drinks = { "ジュース", "お茶", "コーラ", "水", "ミルク" };
// 冷蔵庫に3つの空の場所を準備する
string[] foods = new string[3];
ここでは、drinks
配列に5種類の飲み物を並べ、foods
配列には空の場所を3つ確保しました。
配列の使用方法
冷蔵庫の中の飲み物にアクセスするには、番号(インデックス)を使います。たとえば、最初に並んでいる飲み物を取り出したいときはこうします。
// 一番目の飲み物を取り出す
Console.WriteLine(drinks[0]); // 出力: ジュース
また、新しい飲み物を入れたいときは、次のように空いている場所に入れます。
// 1つ目の空の場所にリンゴを入れる
foods[0] = "リンゴ";
多次元配列
多次元配列は、冷蔵庫の中に棚が2段あるようなイメージです。それぞれの棚に飲み物が並んでいます。
// 2段の棚に飲み物を並べる
string[,] shelves = new string[2, 3] { { "ジュース", "お茶", "コーラ" }, { "水", "ミルク", "炭酸水" } };
この例では、2つの棚にそれぞれ3つの飲み物が並んでいます。
リスト
リストは、飲み物を並べた後でも自由に追加や削除ができる可変式の棚です。たとえば、冷蔵庫のスペースがどんどん変わる場合に便利です。
リストの宣言と初期化
リストは、飲み物の数をあらかじめ決めなくても大丈夫です。必要に応じて飲み物をどんどん追加できます。
// 空のリストを作成して、後で飲み物を追加
List<string> drinks = new List<string>();
// 初期値を持つリストを作成
List<string> fruits = new List<string> { "リンゴ", "バナナ", "オレンジ" };
リストの使用方法
リストに飲み物を追加したり削除したりするのは簡単です。リストはサイズが柔軟なので、たとえ冷蔵庫がいっぱいになっても、リストの棚は無限に広げられます。
// リストに飲み物を追加
drinks.Add("ソーダ");
drinks.Add("緑茶");
// リストの中の飲み物を取り出す
Console.WriteLine(drinks[0]); // 出力: ソーダ
// リストから飲み物を削除
drinks.Remove("緑茶");
また、リストの中身を調べて「この飲み物はあるかな?」と確認することもできます。
bool hasSoda = drinks.Contains("ソーダ");
Console.WriteLine(hasSoda); // 出力: True
ディクショナリ
ディクショナリは、飲み物のラベルに名前をつけて管理するようなものです。たとえば、「ペットボトルには水」「缶にはジュース」という風にキーと値のペアで管理します。
ディクショナリの宣言と初期化
ディクショナリでは、どの容器に何が入っているかをはっきりさせるために、キーを使って内容物を管理します。
// 空のディクショナリを作成
Dictionary<string, string> drinks = new Dictionary<string, string>();
// 初期値を持つディクショナリを作成
Dictionary<string, string> containers = new Dictionary<string, string>
{
{ "ボトル", "水" },
{ "缶", "ジュース" },
{ "箱", "牛乳" }
};
ディクショナリの使用方法
ディクショナリでは、ラベル(キー)を使って、中身にアクセスできます。
// ラベルに基づいて中身を取り出す
Console.WriteLine(containers["ボトル"]); // 出力: 水
また、新しい容器と中身を追加したり、既存のものを削除することもできます。
// 新しい容器を追加
drinks.Add("ペットボトル", "炭酸水");
// 中身を削除
containers.Remove("缶");
さらに、ディクショナリを使って、どの容器に何が入っているかを確認することもできます。
foreach (KeyValuePair<string, string> container in containers)
{
Console.WriteLine($"{container.Key}には{container.Value}が入っています。");
}
まとめ
C#の配列やコレクションを使うと、プログラム内でのデータ管理が非常に効率的になります。
- 配列は冷蔵庫のように、同じ種類のものを決まった数だけ並べるのに便利です。
- リストは柔軟な棚のように、要素を自由に追加したり削除したりできます。
- ディクショナリはラベル付きの容器のように、キーを使って素早くデータにアクセスできます。
日常生活で使う冷蔵庫や棚のように、プログラムでもこれらのデータ構造をうまく使いこなすことで、効率的で整理されたコードを書けるようになります。