Tengo un diccionario que estoy comparando con otro diccionario (variables escritas como IDictionary). Hacer d1.Equals (d2) produce falso. Escribir mi propio código a continuación es cierto. Ambos son System.Collections.Generic.Dictionary
. ¿Me falta algo o Dictionary
no tiene una implementación Equals
que compara claves/valores?Does Dictionary.Equals() tiene una implementación?
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, como se dice en la documentación de la clase de diccionario. http://msdn.microsoft.com/en-us/library/3eayzh46.aspx. –