我有一本字典,就像
DictionaryfooDict
我逐步完成字典中的所有内容,例如
foreach (Foo foo in fooDict.Keys) MessageBox.show(fooDict[foo]);
它按照foos添加到字典的顺序执行此操作,因此添加的第一个项目是返回的第一个foo.
如何更改基数,例如,添加的第三个foo将返回第二个foo?换句话说,我想改变它的"索引".
如果您阅读MSDN上的文档,您会看到:
"返回项目的顺序是不确定的."
您无法保证订单,因为字典不是列表或数组.它意味着通过键查找值,任何迭代值的能力只是一种便利,但顺序不是你应该依赖的行为.
您可能对命名空间中的OrderedDicationary
类感兴趣System.Collections.Specialized
.
如果你看一下最底层的评论,MSFT的某个人发布了这个有趣的说明:
这种类型实际上是错误的; 它不是一个"有序"字典,而是一个"索引"字典.虽然,今天没有这种类型的等效通用版本,如果我们将来添加一个,我们可能会命名为'IndexedDictionary'类型.
我认为从这个类派生并制作OrderedDictionary的通用版本是微不足道的.