我有一个字典,我将它与另一个字典(输入为 IDictionary 的变量)进行比较。执行 d1.Equals(d2) 会产生错误。在下面编写我自己的代码会产生正确的结果。两者都是System.Collections.Generic.Dictionary
。我是否遗漏了什么或没有Dictionary
比较Equals
键/值的实现?
private static bool DictEquals<K, V>(IDictionary<K, V> d1, IDictionary<K, V> d2)
{
if (d1.Count != d2.Count)
return false;
foreach (KeyValuePair<K, V> pair in d1)
{
if (!d2.ContainsKey(pair.Key))
return false;
if (!Equals(d2[pair.Key], pair.Value))
return false;
}
return true;
}