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名前空間に属しており、挿入順序を維持したい辞書型データの管理に非常に便利なコレクションです。
-
C#でのHashtableとDictionaryの使い方徹底解説:基本操作からサンプルコードまで
C#では、キーと値のペアを扱うコレクションとして「Hashtable」と「Dictionary」がよく使われます。どちらもキーを基準に要素へ高速にアクセスできる便利なクラスですが、それぞれ特徴や使い方が異なります。この記事では、両者の主なメソッドと実際のコード例を通じて、基本的な操作方法をわかりやすく解説します。 Hashtable(ハッシュテーブル)とは Hashtable クラスは、キーのハッシュコードに基づいて整理された、キーと値のペアのコレクションを表します。格納された要素には、キーを使ってアクセスします。非ジェネリック型のため、キー・値ともに object 型として扱われる点が
-
Pythonの辞書にキーと値のペアを追加する方法を徹底解説
Pythonの辞書(dict)は、キーと値のペアで構成されるコレクションです。すでに定義済みの辞書に対して、新しいキーと値のペアを追加する場面は開発の中で非常によくあります。この記事では、代表的な3つの追加方法を具体例とともにわかりやすく解説します。1. 新しいキーを添字として代入する最もシンプルな方法は、新しいキーを角括弧(添字)で指定し、そこに値を代入する書き方です。既存のキーを指定すれば値が上書きされ、存在しないキーを指定すれば新しい要素が追加されます。コード例CountryCodeDict = {India: 91, UK: 44, USA: 1} print(CountryCodeD