Dictionary item order
我用
在大多数情况下,我只使用狄更斯访问单个项目。但在一个案例中,我必须循环浏览字典——这里我需要按添加的顺序排列条目。
我只知道字典在内部使用哈希表,但我不知道它是如何组织的。
问题:字典中的项目在添加时是否按顺序排列?添加或删除项目时,订单会发生什么情况?
它们根本就没有订购。字典中元素的顺序是不确定的。
msdn:"返回项目的顺序未定义。"
您可以使用
更新为什么字典不是按性质排序的?
如果您查看了msdn页面,就会发现(第一个问题)
The order in which the items are returned is undefined.
号
第二个问题的答案是它是由哈希表实现的。
我不可能在不知道你的实际需求的情况下推荐一个更好的行动方案。但一旦你开始乱用多个键和排序顺序,你将失去你的O(1)检索。
不,它们没有订购,您可以在Microsoft的库中阅读:
For purposes of enumeration, each item in the dictionary is treated as
a KeyValuePair structure representing a value and its
key. The order in which the items are returned is undefined.
号
字典根本没有排序,因此您不能依赖其中的值。您可以尝试使用
没有OrderedDictionary的通用实现?