Dictionary<string,string> dictionary1;
Dictionary<string,string> dictionary2;
var same = dictionary1.Count == dictionary2.Count && dictionary1.Keys.SequenceEqual(dictionary2.Keys);
如果你想要实际的差异,类似这样:
var keysDictionary1HasThat2DoesNot = dictionary1.Keys.Except(dictionary2.Keys);
var keysDictionary2HasThat1DoesNot = dictionary2.Keys.Except(dictionary1.Keys);
7条答案
按热度按时间ybzsozfc1#
如果你只想看看键是否不同,但不知道它们是什么,你可以在每个字典的
Keys
属性上使用SequenceEqual
扩展方法:如果你想要实际的差异,类似这样:
tjvv9vkg2#
pengsaosao3#
试试这个
7gcisfzg4#
如果有帮助的话,您可以获取键的集合并对其进行索引。
实际上,我不确定是用数字索引它,还是用键本身索引它,所以两种方法都试试。
deyfvvtc5#
你可以这样做(取决于你想要的是intersect还是exclusion):
5vf7fwbs6#
您可以:
如果
dictionary1
使用与dictionary2
不同的比较器,请小心。你必须决定“平等”是否意味着一个或另一个字典认为它的意思(或其他完全)。wwodge7n7#
我认为这是最快的方式来检查除了计数键之间的差异。