Ho un dizionario che sto confrontando con un altro dizionario (variabili digitate come IDictionary). Fare d1.Equals (d2) produce false. Scrivendo il mio codice qui sotto si ottiene vero. Entrambi sono System.Collections.Generic.Dictionary
. Mi manca qualcosa o Dictionary
non ha un'implementazione Equals
che confronta chiavi/valori?Does Dictionary.Equals() ha un'implementazione?
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;
}
+1, come indicato nella documentazione della classe del dizionario. http://msdn.microsoft.com/en-us/library/3eayzh46.aspx. –