1

如果我在foreach上进行循环Dictionary<>.Keys,是否有任何规则,例如先进先出或后进先出?还是随机的?

4

3 回答 3

5

字典类

返回项目的顺序未定义。

字典中的项目没有排序。您不能确定以相同的顺序获得相同的物品。

为其属性Dictionary.Keys 属性

Dictionary.KeyCollection 中键的顺序未指定,但它与 Values 属性返回的 Dictionary.ValueCollection 中的关联值的顺序相同。

如果您想要订购或想要按索引访问字典项目,那么您可以使用OrderedDictionary

表示可由键或索引访问的键/值对的集合。

于 2012-12-25T05:07:29.373 回答
2

这一切都在文档中。

Dictionary.KeyCollection 中键的顺序未指定,但它与 Values 属性返回的 Dictionary.ValueCollection 中的关联值的顺序相同。

于 2012-12-25T05:07:39.857 回答
0

的顺序dictionary is not deterministic,您在检索密钥时无法确保顺序。

出于枚举的目的,字典中的每个项目都被视为表示值及其键的 KeyValuePair 结构。返回项目的顺序未定义, MSDN

您可以通过它告诉您顺序的方​​式创建一个键,例如,您可以在 dictionay 中添加键时使用递增整数,或者您可以使用有序字典

于 2012-12-25T05:07:30.253 回答