我有两本词典,我想比较一下。我想忽略大小写,只有在它们具有不同值时才返回 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 方法来比较两个字典。我已经通过键对它们进行了排序,因此如果键位置不同,结果不会是错误的。我似乎无法弄清楚的问题是如何忽略键和值中的大小写并仅在值不同时才返回 false。在我的情况下,值 1 和 VALUE 1 都相等,结果应该为真。这不是我的情况。