コンテンツにスキップ

C# Dictionary キー文字列の大文字・小文字の区別

デフォルトでは大文字と小文字は区別される
大文字と小文字を区別するには、StringComparerクラスのプロパティをオプションを指定する

Usage

デフォルトのDictionaryとOrdinalIgnoreCaseを指定したDictionaryを検証

// 正常に動作する
var dict = new Dictionary<string, string>()
{
    {"A", "1"},
    {"a", "2"},
};

// A と a が同じキーとして扱われエラーが発生する
var dict_ignore = new Dictionary<string, string>
(StringComparer.OrdinalIgnoreCase)
{
    {"A", "1"},
    {"a", "2"},
};
StringComparer.OrdinalIgnoreCaseを指定した場合、下記エラーとなる

Unhandled exception. System.ArgumentException: An item with the same key has already been added. Key: a

Reference

Dictionary クラス
Dictionary(IEqualityComparer)
StringComparer クラス