別の辞書 (IDictionary として入力された変数) と比較している辞書があります。d1.Equals(d2) を実行すると false が返されます。以下に独自のコードを記述すると、true が返されます。どちらも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;
}