61 votes

Dictionnaire ou KeyedCollection ?

J’ai une classe ( ) qui contient une propriété de type. Et j’ai besoin de stocker un tableau de cette classe et de trouver ses éléments par leurs noms. À cette fin, il existe deux types de collections: et . Ma question est: Quelle différence entre eux et dans un tel cas, il est préférable d’utiliser et `` ? Merci pour toute aide dans l’explication.

79voto

Neil Whitaker Points 2886

Aucun des commentaires précédents n’aborde la différence la plus importante entre les deux : KeyedCollection conserve vos éléments dans l’ordre dans lequel ils sont ajoutés (le premier élément ajouté est à l’index 0 et le dernier ajouté est à l’index dernier). Le dictionnaire ne le fait pas (ou du moins il n’est jamais garanti de le faire).

Cet avantage supplémentaire de KeyedCollection a un faible coût de performance. Sous les couvertures, vous payez le coût de la maintenance d’un dictionnaire et d’une liste.

7voto

zendu Points 11

Une KeyedCollection permet des clés modifiables et des moyens de gérer les modifications de clé. Le dictionnaire n’autorise pas les modifications apportées à la clé. Deuxièmement, si vous avez une collection qui nécessite une recherche, la logique d’extraction de la clé de l’entité reste au même endroit - tandis que le dictionnaire de maintenance devra placer la logique d’extraction de clé à chaque endroit où les éléments sont ajoutés / supprimés du dictionnaire.

5voto

Blam Points 17325

Par défaut, un KeyedCollection crée un dictionnaire sous les couvertures.
Si la clé a également une signification dans le cadre de la valeur et définit également l’unicité, c’est le but d’une KeyedCollection.

Si vous souhaitez modifier la sauvegarde du dictionnaire, utilisez ce lecteur :

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X