找出两个嵌套字典之间的区别

时间:2016-04-27 08:46:55

标签: c# linq dictionary compare

我有两个类型为:

的嵌套词典
Dictionary<string, Dictionary<string, Dictionary<string, Dictionary<string, Dictionary<string, string>>>>>

我想知道找到两者之间差异的最有效/最好的方法是什么,我只是比较键,目前我已经嵌套了循环并比较它们但是我不认为这是最有效的方式。

2 个答案:

答案 0 :(得分:3)

通过键进行迭代是不可避免的,因此您的算法最多将线性执行(O(N),其中N是键的集合长度) 现在,通过索引访问字典成员是一个常量--O(1)操作,所以只需确保使用索引器或TryGetValue方法 因此,您的算法应该是集合大小的衬里 请注意,不是有多个嵌套的通用字典,而是重构更好来重构一个复合键,即有一个带有几个表示复合键的字符串字段的结构,然后只使用一个字典没有嵌套

答案 1 :(得分:2)

不确定这是否是您要实现的目标,但是如果您想检查一个字典中的哪些键而不是另一个字典中的键(或者通常在集合上执行的其他操作),则可以使用LINQ

a