GetStringComparer拡張メソッドで取得したStringComparerをDictionaryのコンストラクタに渡すことにより、CompareOptionsを使用したキーの比較を行うことができます。
例として、CompareOptions.IgnoreKanaType/IgnoreWidthを使って、キーのひらがなとカタカナの違い/全角と半角の違いを無視するDictionary<string, string>を作成するには次のようにします。
CompareOptionsを使用してキーのひらがなとカタカナの違い無視するDictionaryを作成する .NET Framework 4.7.1
Imports System
Imports System.Collections.Generic
Imports System.Globalization
Class Sample
Shared Sub Main()
' 独自に実装したIEqualityComparer(Of String)を指定してDictionaryを作成する
' (CultureInfo.InvariantCultureのCompareInfoをベースに、CompareOptions.IgnoreKanaTypeを指定して
' ひらがな・カタカナの違いを無視するStringComparerを取得する)
Dim dict As New Dictionary(Of String, String)(CultureInfo.InvariantCulture.CompareInfo.GetStringComparer(CompareOptions.IgnoreKanaType))
dict("ほげ") = "hoge"
dict("ぴよ") = "piyo"
dict("ふが") = "fuga"
dict("ピヨ") = "PIYO" ' ひらがな・カタカナの違いは無視されるため、キー"ぴよ"の値が上書きされる
For Each p As KeyValuePair(Of String, String) In dict
Console.WriteLine("{0} => {1}", p.Key, p.Value)
Next
Console.WriteLine(dict.ContainsKey("ピヨ"))
End Sub
End Class
実行結果
ほげ => hoge ぴよ => PIYO ふが => fuga True
Dictionaryとキー比較のカスタマイズについてはジェネリックコレクション(2) Dictionary §.キー比較のカスタマイズ(大文字小文字の違いの無視)を参照してください。