Comparando 2 Instâncias de Dicionário <string, string>
Eu quero comparar o conteúdo de doisDictionary<string, string>
instâncias, independentemente da ordem dos itens que eles contêm.SequenceEquals
também compara a ordem, então eu primeiro ordeno os dicionários por chave e depois chamoSequenceEquals
.
Existe um método que eu possa usar em vez deSequenceEquals
que só compara o conteúdo?
Se não houver, essa é a maneira ideal de fazer isso?
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));