85 votes

Quand utiliseriez-vous une List<KeyValuePair<T1, T2>> au lieu d'un Dictionary<T1, T2> ?

Quelle est la différence entre une liste de paires clé-valeur et un dictionnaire pour les mêmes types ? Y a-t-il un moment opportun pour utiliser l'un ou l'autre ?

74voto

Pavel Minaev Points 60647

Lorsque vous n'avez pas besoin de faire des recherches rapides sur la clé - maintenir la table de hachage utilisée par Dictionary a un certain surcoût.

60voto

RCIX Points 12049

En bref, la liste n'impose pas l'unicité de la clé, donc si vous avez besoin de cette sémantique, c'est ce que vous devez utiliser.

14voto

Andrew Medico Points 11338

La liste est également utile lorsque l'ordre des éléments est important.

7voto

tjmoore Points 567

Suite à la réponse de Phillip Ngan, SOAP ou autre, vous ne pouvez pas sérialiser en XML des objets qui implémentent IDictionary.

Q : Pourquoi ne puis-je pas sérialiser les tables de hachage ?

R : Le XmlSerializer ne peut pas traiter les classes implémentant l'interface IDictionary. Cela est dû en partie à des contraintes de calendrier et en partie au fait qu'une table de hachage n'a pas d'équivalent dans le système de types XSD. La seule solution est d'implémenter une table de hachage personnalisée qui n'implémente pas l'interface IDictionary.

à partir d'ici

5voto

Phillip Ngan Points 4303

Dans les webservices SOAP pour Silverlight, nous avons constaté que les dictionnaires ne se sérialisent pas. Dans ce cas, il est préférable d'utiliser une liste de paires clé-valeur plutôt qu'un dictionnaire.

.

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