Dictionary クラスのキーに string を使用するときには、デフォルトでは大文字・小文字は区別されますが、ここでは、大文字・小文字を区別をしないで、同一のキーとして扱う Dictionary のサンプルコードを掲載しています。
スポンサーリンク
Dictionary キー:大文字・小文字の区別あり
以下のように Dictionary のキーはデフォルトで、大文字・小文字を区別しますので、下記のサンプルコードはどちらも正常にデータが追加されます。
VB.NET
Dim d As New Dictionary(Of String, String)() d.Add("key", "1") ' 正常に追加される d.Add("KEY", "2") ' 正常に追加される
C#
Dictionary<string, string> d = new Dictionary<string, string>(); d.Add("key", "ショーンケー"); // 正常に追加される d.Add("KEY", "オグラケー"); // 正常に追加される
Dictionary キー:大文字・小文字の区別なし
では、次に key と KEY は同一のキーとして判断するサンプルコードです。Dictionary 生成時にパラメータを与えるだけですので、お手軽です。
例えば Windows では、ファイル名は大文字・小文字の区別はされませんので、そのようなデータをキーとして扱うときに便利かもしれません。
VB.NET
' 大文字・小文字の区別を行わないように Dictionary を生成 Dim d As New Dictionary(Of String, String)(StringComparer.OrdinalIgnoreCase) d.Add("test", "1") ' すでに同一のキーが存在すると判断される If (d.ContainsKey("TEst")) Then Console.WriteLine("exists") End If ' ★ この位置で例外が発生します d.Add("TEST", "2") ' System.ArgumentException はハンドルされませんでした。 ' Message = 同一のキーを含む項目が既に追加されています。
C#
// 大文字・小文字の区別を行わないように Dictionary を生成 Dictionary<string, string> d = new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase); d.Add("test", "1"); // すでに同一のキーが存在すると判断される if (d.ContainsKey("TEst")) { Console.WriteLine("exists"); } // ★ この位置で例外が発生します d.Add("TEST", "2");