Quiero comparar el contenido de dos instancias Dictionary<string, string>
independientemente del orden de los elementos que contienen. SequenceEquals
también compara el orden, así que primero ordeno los diccionarios por clave y luego llamo al SequenceEquals
.Comparando 2 Diccionario <cadena, cadena> Instancias
¿Hay algún método que pueda usar en lugar de SequenceEquals
que solo compare el contenido?
Si no lo hay, ¿es esta la forma ideal de hacerlo?
Dictionary<string, string> source = new Dictionary<string, string>();
Dictionary<string, string> target = new Dictionary<string, string>();
source["foo"] = "bar";
source["baz"] = "zed";
source["blah"] = null;
target["baz"] = "zed";
target["blah"] = null;
target["foo"] = "bar";
// sequenceEquals will be false
var sequenceEqual = source.SequenceEqual(target);
// contentsEqual will be true
var contentsEqual = source.OrderBy(x => x.Key).SequenceEqual(target.OrderBy(x => x.Key));
La pregunta contiene un gran defecto. No existe tal cosa como un orden en el que los elementos están en un diccionario. Por definición, un diccionario tiene la clave para pares de valores sin ningún orden implícito. – Zordid