Dictionary<String,...>
がある場合、ContainsKey
のようなメソッドを大文字と小文字を区別しないようにすることはできますか?
これは関連しているように見えましたが、私はそれを正しく理解していませんでした: c#辞書:宣言を通じてキーの大文字と小文字を区別しません
これは関連しているように見えましたが、私はそれを正しく理解していませんでした:c#辞書:キーを大文字小文字を区別せずに宣言する
それは確かに関連しています。解決策は、ディクショナリインスタンスに標準の文字列比較方法(大文字と小文字を区別する)を使用せず、大文字と小文字を区別しない方法を使用するように指示することです。これは 適切なコンストラクター を使用して行われます:
var dict = new Dictionary<string, YourClass>(
StringComparer.InvariantCultureIgnoreCase);
コンストラクタは、キーを比較する方法を辞書に指示する IEqualityComparer
を想定しています。
StringComparer.InvariantCultureIgnoreCase
は、大文字と小文字を区別しない方法で文字列を比較するIEqualityComparer
インスタンスを提供します。
var myDic = new Dictionary<string, string>(StringComparer.InvariantCultureIgnoreCase);
myDic.Add("HeLlo", "hi");
if (myDic.ContainsKey("hello"))
Console.WriteLine(myDic["hello"]);
サードパーティまたは外部dllから取得した辞書を扱う可能性はほとんどありません。 linqを使用する
YourDictionary.Any(i => i.KeyName.ToLower().Contains("yourstring")))