我想比較兩個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