C#
 Computer >> コンピューター >  >> プログラミング >> C#

C#のOrderedDictionaryコレクションにキーと値を追加する方法

C#のOrderedDictionaryコレクションにキーと値を追加するには、Add()メソッドを使用します。このメソッドは2つの引数を受け取ります。第1引数はキー、第2引数は対応する値です。

OrderedDictionaryの特徴は、要素を追加した順序を保持しながら、キーによるアクセスも可能な点です。通常のHashtableとは異なり、挿入順序が保証されるため、順序が重要なシナリオで活用できます。

基本的な使い方

以下のコードでは、2つのOrderedDictionaryを作成し、それぞれにキーと値を追加した後、内容を表示して等価性を確認しています。

using System;
using System.Collections;
using System.Collections.Specialized;

public class Demo {
   public static void Main() {
      // 1つ目のOrderedDictionaryを作成
      OrderedDictionary dict1 = new OrderedDictionary();
      dict1.Add("A", "Books");
      dict1.Add("B", "Electronics");
      dict1.Add("C", "Smart Wearables");
      dict1.Add("D", "Pet Supplies");
      dict1.Add("E", "Clothing");
      dict1.Add("F", "Footwear");

      Console.WriteLine("OrderedDictionary1 の要素...");
      foreach(DictionaryEntry d in dict1) {
         Console.WriteLine(d.Key + " " + d.Value);
      }

      // 2つ目のOrderedDictionaryを作成
      OrderedDictionary dict2 = new OrderedDictionary();
      dict2.Add("1", "One");
      dict2.Add("2", "Two");
      dict2.Add("3", "Three");
      dict2.Add("4", "Four");
      dict2.Add("5", "Five");
      dict2.Add("6", "Six");

      Console.WriteLine("\nOrderedDictionary2 の要素...");
      foreach(DictionaryEntry d in dict2) {
         Console.WriteLine(d.Key + " " + d.Value);
      }

      Console.WriteLine("\nOrderedDictionary1 と OrderedDictionary2 は等しいか? = " + (dict1.Equals(dict2)));
   }
}

出力結果

上記のコードを実行すると、次の出力が得られます。

OrderedDictionary1 の要素...
A Books
B Electronics
C Smart Wearables
D Pet Supplies
E Clothing
F Footwear
OrderedDictionary2 の要素...
1 One
2 Two
3 Three
4 Four
5 Five
6 Six
OrderedDictionary1 と OrderedDictionary2 は等しいか? = False

2つのディクショナリには異なるキーと値が格納されているため、Equals()メソッドの比較結果はFalseとなります。

値の取得とキーの存在確認

次の例では、Add()で追加した要素に対して、Valuesプロパティによる値の一覧取得や、Contains()メソッドによるキーの存在確認を行っています。

using System;
using System.Collections;
using System.Collections.Specialized;

public class Demo {
   public static void Main() {
      OrderedDictionary dict = new OrderedDictionary();
      dict.Add("1", "One");
      dict.Add("2", "Two");
      dict.Add("3", "Three");
      dict.Add("4", "Four");
      dict.Add("5", "Five");
      dict.Add("6", "Six");
      dict.Add("7", "Seven");
      dict.Add("8", "Eight");

      // 値のコレクションを配列にコピー
      ICollection col = dict.Values;
      String[] strVal = new String[dict.Count];
      col.CopyTo(strVal, 0);

      Console.WriteLine("値の表示...");
      for (int i = 0; i < dict.Count; i++) {
         Console.WriteLine(strVal[i]);
      }

      Console.WriteLine("OrderedDictionary は読み取り専用か? = " + dict.IsReadOnly);
      Console.WriteLine("OrderedDictionary にキー 15 は存在するか? = " + dict.Contains("15"));
      Console.WriteLine("OrderedDictionary にキー 5 は存在するか? = " + dict.Contains("5"));
   }
}

出力結果

実行すると、次のような出力が表示されます。

値の表示...
One
Two
Three
Four
Five
Six
Seven
Eight
OrderedDictionary は読み取り専用か? = False
OrderedDictionary にキー 15 は存在するか? = False
OrderedDictionary にキー 5 は存在するか? = True

ポイント解説

  • Add(key, value): 指定したキーと値のペアをOrderedDictionaryに追加します。同じキーを再度追加しようとすると例外が発生します。
  • IsReadOnly: コレクションが読み取り専用かどうかを示すbool値を返します。この例ではFalse(書き込み可能)です。
  • Contains(key): 指定したキーがディクショナリ内に存在するかどうかを判定します。存在すればTrue、存在しなければFalseを返します。
  • Values: ディクショナリ内のすべての値を含むICollectionを返します。CopyTo()メソッドを使えば配列へ簡単にコピーできます。

このように、OrderedDictionaryはSystem.Collections.Specialized名前空間に属しており、挿入順序を維持したい辞書型データの管理に非常に便利なコレクションです。

  1. C#でのHashtableとDictionaryの使い方徹底解説:基本操作からサンプルコードまで

    C#では、キーと値のペアを扱うコレクションとして「Hashtable」と「Dictionary」がよく使われます。どちらもキーを基準に要素へ高速にアクセスできる便利なクラスですが、それぞれ特徴や使い方が異なります。この記事では、両者の主なメソッドと実際のコード例を通じて、基本的な操作方法をわかりやすく解説します。 Hashtable(ハッシュテーブル)とは Hashtable クラスは、キーのハッシュコードに基づいて整理された、キーと値のペアのコレクションを表します。格納された要素には、キーを使ってアクセスします。非ジェネリック型のため、キー・値ともに object 型として扱われる点が

  2. Pythonの辞書にキーと値のペアを追加する方法を徹底解説

    Pythonの辞書(dict)は、キーと値のペアで構成されるコレクションです。すでに定義済みの辞書に対して、新しいキーと値のペアを追加する場面は開発の中で非常によくあります。この記事では、代表的な3つの追加方法を具体例とともにわかりやすく解説します。1. 新しいキーを添字として代入する最もシンプルな方法は、新しいキーを角括弧(添字)で指定し、そこに値を代入する書き方です。既存のキーを指定すれば値が上書きされ、存在しないキーを指定すれば新しい要素が追加されます。コード例CountryCodeDict = {India: 91, UK: 44, USA: 1} print(CountryCodeD