Я хочу сравнить содержимое двух Dictionary<string, string>
экземпляров независимо от порядка элементов, которые они содержат. SequenceEquals
также сравнивает порядок, поэтому я сначала упорядочиваю словари по ключу, а затем вызываю SequenceEquals
.
Есть ли метод, который я могу использовать вместо SequenceEquals
, который будет сравнивать только содержимое?
Если нет, это идеальный способ сделать это?
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));