我有两个类型为:
的嵌套词典Dictionary<string, Dictionary<string, Dictionary<string, Dictionary<string, Dictionary<string, string>>>>>
我想知道找到两者之间差异的最有效/最好的方法是什么,我只是比较键,目前我已经嵌套了循环并比较它们但是我不认为这是最有效的方式。
答案 0 :(得分:3)
通过键进行迭代是不可避免的,因此您的算法最多将线性执行(O(N),其中N是键的集合长度) 现在,通过索引访问字典成员是一个常量--O(1)操作,所以只需确保使用索引器或TryGetValue方法 因此,您的算法应该是集合大小的衬里 请注意,不是有多个嵌套的通用字典,而是重构更好来重构一个复合键,即有一个带有几个表示复合键的字符串字段的结构,然后只使用一个字典没有嵌套
答案 1 :(得分:2)
不确定这是否是您要实现的目标,但是如果您想检查一个字典中的哪些键而不是另一个字典中的键(或者通常在集合上执行的其他操作),则可以使用LINQ
a