また別の例として、大文字と小文字の違いを無視してキーを扱うDictionaryを作成したい場合は次のようにします。
StringComparerを指定してキーの大文字と小文字の違いを無視するDictionaryを作成する
using System;
using System.Collections.Generic;
class Sample {
static void Main()
{
// キーの大文字小文字の違いを無視するDictionaryを作成する
var dict = new Dictionary<string, string>(StringComparer.InvariantCultureIgnoreCase);
// キー"foo"に値を設定
dict["foo"] = "bar";
// キー"FOO"の値を参照
Console.WriteLine(dict["FOO"]); // KeyNotFoundExceptionはスローされない
}
}
実行結果
bar
上記の例ではStringComparerクラスを指定することでDictionaryのキー比較処理をカスタマイズしています。
このように、大文字小文字の無視の他にも特定カルチャに依存した(あるいは依存しない)並べ替え規則の適用など、目的に応じて比較オプションを選択することができます。