我想比较两个Dictionary<string, string>
实例的内容,而不管它们包含的项目的顺序如何。 SequenceEquals
也比较了顺序,所以我先通过键命令字典,然后拨打SequenceEquals
。比较2字典<字符串,字符串>实例
有没有一种方法可以用来代替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));
这个问题包含一个很大的缺陷。没有任何元素在字典中的顺序。根据定义,字典包含没有任何隐式排序的值对的关键字。 – Zordid 2017-11-10 14:58:03