Ne Dictionnaire<TKey, TValue> commande par touches par défaut?
Je suis en utilisant un Dictionnaire<TKey, TValue>
et je suis de certains étranges, mais quelque peu compréhensible comportement dans mes tests.
Peu importe l'ordre que j'ai ajouter des entrées dans le dictionnaire quand je l'appelle Dictionnaire.Les touches
les touches sont retournés dans l'ordre spécifié par le IComparable<T>
mise en œuvre de la clé type.
Ce qui est bon pour moi que je veux obtenir, dans l'ordre, de toute façon, mais je ne peux pas trouver n'importe où qui indique qu'ils doivent et seront toujours retourné de cette façon. Donc, je ne sais pas si à compter sur elle toujours comme ça, ou faire un (potentiellement redondants) tri sur le List<T>
je suis en train de construire.
Puis-je compter sur ce comportement ou pas?
OriginalL'auteur Garry Shutler | 2009-02-25
Vous devez vous connecter pour publier un commentaire.
Vous ne pouvez pas compter sur ce comportement. C'est juste une coïncidence qui est probablement dû à la taille de votre échantillon ou GetHashCode mise en œuvre. Une fois que vous ajoutez assez d'éléments dans le tableau et la force suffisante rehashes les clés ne sera pas ordonnée.
MSDN dit explicitement la commande de Clés est pas spécifié (http://msdn.microsoft.com/en-us/library/yt2fy5zk.aspx)
OriginalL'auteur JaredPar
Vous êtes à la recherche pour SortedDictionary
<K,V>
. Dictionnaire<K,V>
utilise le hachage, qui, avec de petits ensembles peuvent regarder superficiellement similaire à un traitement de tri.OriginalL'auteur Ruben Bartelink