Dictonary<> .Keys返回的商品的顺序

时间:2012-12-25 05:05:52

标签: c# dictionary

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

3 个答案:

答案 0 :(得分:5)

Dictionary Class

  

未定义项目的返回顺序。

字典中的项目未订购。您无法确定以相同的顺序获取相同的项目。

其财产Dictionary.Keys Property

  

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

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

  

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

答案 1 :(得分:2)

全部都在documentation

  

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

答案 2 :(得分:0)

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

  

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

您可以通过以下方式创建密钥:您可以在dictionay中添加键时使用递增的整数,也可以使用ordered dictionary