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 §.キー比較のカスタマイズ(大文字小文字の違いの無視)を参照してください。

MENTAにてテキストチャットによるサポートを行っています。 問題の解決法をお探しの方や.NET/C#を学習中の方はどうぞご利用ください。