2 つの辞書があり、それらを比較したいと考えています。大文字と小文字を区別せず、値が異なる場合にのみ false を返します。これが私のコードです。
var dic1 = new Dictionary<String, String>(StringComparer.CurrentCultureIgnoreCase);
dic1.Add("Key 2", "Value 2");
dic1.Add("Key 1", "Value 1");
var dic2 = new Dictionary<String, String>(StringComparer.CurrentCultureIgnoreCase);
dic2.Add("Key 1", "Value 1");
dic2.Add("Key 2", "Value 2");
var areEqual = dic1.OrderBy(r => r.Key).SequenceEqual(dic2.OrderBy(r => r.Key));
Console.WriteLine(areEqual);
ご覧のとおり、ディクショナリ クラスの SequenceEqual メソッドを使用して 2 つのディクショナリを比較しています。キーの位置が異なっても結果が偽にならないように、キーで並べ替えました。私が理解できない問題は、キーと値の大文字と小文字を区別せず、値が異なる場合にのみ false を返す方法です。私の場合、値 1 と VALUE 1 はどちらも等しく、結果は true になるはずです。それはここでは私の場合ではありません。