HashtableよりDictionary。さらにSortedDictionary

C#でハッシュ(連想配列)を使いたかったので調べてみるとHashtableというのが見つかりました。使い方は簡単ですぐに目的は達成できたのですが、更に調べてみるとDictionaryというものがあるではないですか。

Dictionaryの場合ジェネリクスを使って型の指定ができて、値を取り出すときにいちいちキャストをしなくても良いのでこちらを使うことにしました。ただこれDictionary<string, string>というようにローカル変数一つ使うにも面倒な記述が必要です。これに対しては解決法があって長いジェネリック・クラスの名前を短く記述するには?にあるようにusingで別名が付けられます(typedefのような感じ。

Dictionaryで最終解になると思ったのですが、SortedDictionaryというのを発見。Dictionaryはハッシュの特性上キーの並びがばらばらになってしまうのですが、SortedDictionaryを使うとソートされた状態でキーを取得できます。

どちらを使うかは用途次第になりますが、今回はSortedDictionaryの使用に決定。

で、SortedDictionaryにしてみました。存在しないキーを指定して値を取ろうとすると例外が発生するのですね。