2014-09-02 4 views
-1

Lorsque itérer sur un dictionnaire en C#, sommes-nous garantir que l'ordre sera le même chaque fois que nous parcourons ce dictionnaire?ordre lorsque vous parcourez un dictionnaire

foreach (var key in myDict.Keys) 
    { 
    ...    
    } 
+1

http://stackoverflow.com/questions/6384710/why-is-a-dictionary-not-ordered et http://stackoverflow.com/questions/4007782/la-ordre-de-elements-in -dictionary –

+1

Par ailleurs, si vous avez besoin d'un dictionnaire ordonné une utilisation [ 'OrderedDictionary'] (http://msdn.microsoft.com/en-us/library/system.collections.specialized.ordereddictionary (v = vs.110) .aspx). Il a la même performance de recherche mais est plus lent lors de l'insertion/la suppression et nécessite de la mémoire supplémentaire. –

Répondre

1

Selon documentation, non, il n'y a aucune garantie:

L'ordre des clés dans le Dictionary<TKey, TValue>.KeyCollection est non spécifiée, mais il est le même ordre que les valeurs associées à la Dictionary<TKey, TValue>.ValueCollection retourné par la propriété Values.

Questions connexes