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.
Réponses
Trop de publicités?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.
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.