MENU

C#のDictionary入門:キーと値のペアで管理する効率的なデータ構造

C#プログラミングにおいて、データを効率的に管理することは非常に重要です。今回は、キーと値のペアでデータを管理できる「Dictionary」について詳しく解説します。Dictionaryは、データの高速な検索や管理が必要な場面で広く使用される、非常に有用なデータ構造です。

目次

自己紹介

私は新卒でFAシステムの開発会社に入社した2年目エンジニアです。(2024年時点)

私はC#とVBを学習中なのでブログを見返す用のメモ代わりに活用しています。私の知識を共有し、皆様の学習のサポートとなれば幸いです。

Dictionaryとは

Dictionaryは、C#のSystem.Collections.Generic名前空間に含まれる、キーと値のペアを格納するコレクションクラスです。主な特徴は以下の通りです:

  1. キーと値のペア:各要素がキーと値のペアで構成されます。
  2. 高速なアクセス:キーを使用して値に直接アクセスできます。
  3. ユニークなキー:各キーは一意である必要があります。
  4. 型安全性:キーと値の型を明示的に指定できます。

それでは、実際にDictionaryを使用するコード例を見てみましょう:

using System;
using System.Collections.Generic;

class Program
{
    static void Main(string[] args)
    {
        // Dictionaryの作成
        Dictionary<string, int> ages = new Dictionary<string, int>();

        // 要素の追加
        ages.Add("Alice", 25);
        ages.Add("Bob", 30);
        ages["Charlie"] = 35; // 別の追加方法

        // Dictionaryの内容を表示
        Console.WriteLine("名前と年齢:");
        foreach (KeyValuePair<string, int> pair in ages)
        {
            Console.WriteLine($"{pair.Key}: {pair.Value}歳");
        }

        // 要素数の表示
        Console.WriteLine($"\n登録人数: {ages.Count}");

        // キーを使って値にアクセス
        string name = "Bob";
        if (ages.TryGetValue(name, out int age))
        {
            Console.WriteLine($"{name}の年齢: {age}歳");
        }
        else
        {
            Console.WriteLine($"{name}は登録されていません。");
        }

        // キーの存在確認
        string searchName = "David";
        if (ages.ContainsKey(searchName))
        {
            Console.WriteLine($"{searchName}は登録されています。");
        }
        else
        {
            Console.WriteLine($"{searchName}は登録されていません。");
        }

        // 要素の更新
        ages["Alice"] = 26;

        // 要素の削除
        ages.Remove("Charlie");

        // 更新後のDictionaryを表示
        Console.WriteLine("\n更新後の名前と年齢:");
        foreach (var pair in ages)
        {
            Console.WriteLine($"{pair.Key}: {pair.Value}歳");
        }
    }
}

このコードでは、Dictionaryの基本的な操作を示しています:

  1. Dictionary<string, int>のインスタンスを作成します。
  2. Addメソッドや索引子を使用して要素を追加します。
  3. foreachループでキーと値のペアを表示します。
  4. Countプロパティで要素数を取得します。
  5. TryGetValueメソッドでキーに対応する値を安全に取得します。
  6. ContainsKeyメソッドでキーの存在を確認します。
  7. 索引子を使用して値を更新します。
  8. Removeメソッドで要素を削除します。

Dictionaryの使用場面

Dictionaryは以下のような状況で特に有用です:

  • キーを使って値を高速に検索する必要がある場合
  • データを一意のキーで管理したい場合
  • 大量のデータを効率的に管理する必要がある場合
  • キーと値のペアでデータを表現するのが自然な場合(例:名前と年齢、商品コードと価格など)

注意点

  1. キーは一意である必要があります。重複するキーを追加しようとすると例外が発生します。
  2. キーにnullは使用できません(ただし、値にはnullを使用できます)。
  3. 要素の順序は保証されません。順序が重要な場合は、SortedDictionaryの使用を検討してください。

まとめ

Dictionaryは、C#プログラミングにおいて、キーと値のペアを効率的に管理するための強力なツールです。適切に使用することで、データの検索や管理を高速かつ簡単に行うことができます。

初心者の方々も、データ構造の基礎を学ぶ過程で、Dictionaryの概念を理解することは非常に有益です。実際にコードを書いて試すことで、その特性と使用方法をより深く理解できるでしょう。

その他のListに関する記事一覧

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

目次