KeyValuePair vs NameValueCollection
Il y a d'autres questions telles que KeyValuePair vs IDictionary, mais je sens que celui-ci diffère légèrement.
NameValueCollection
prend une de clés de la chaîne et de la chaîne de valeur.
KeyValuePair
est comme un dictionnaire, vous lui dites de quel type de la clé et la valeur.
Je ne comprends pas pourquoi NameValueCollection
existe. L'initialisation d'un KeyValuePair
avec des types chaîne semble suffisant. J'ai aussi remarqué que NameValueCollection
a quelques méthodes à sa disposition, mais encore une fois pourquoi ne pas fusionner les deux classes en une seule?
Un
un dictionnaire prend une liste de paires clé/valeur. Je ne suis pas à voir une différence.
Un dictionnaire ne peut avoir qu'un de chaque touche.
Je crois que mon erreur a qu'un dictonary détient des paires clé-valeur, où, à la valeur de la clé de la paire est singulier, vous ne pouvez pas continuer à ajouter à la tvp de la
KeyValuePair
pas comme un dictionnaire. C'est tout simplement un Tuple contenant la Clé et la Valeur.un dictionnaire prend une liste de paires clé/valeur. Je ne suis pas à voir une différence.
var kvp = new KeyValuePair<string,string>("Hello", "World!")
-- KeyValuePair<K,V>Un dictionnaire ne peut avoir qu'un de chaque touche.
Je crois que mon erreur a qu'un dictonary détient des paires clé-valeur, où, à la valeur de la clé de la paire est singulier, vous ne pouvez pas continuer à ajouter à la tvp de la
kvp
exemple ci-dessus, par exemple.OriginalL'auteur The Muffin Man | 2011-05-27
Vous devez vous connecter pour publier un commentaire.
Un
KeyValuePair
pas comme un dictionnaire. C'est tout simplement un Tuple contenant la Clé et la Valeur.NameValueCollection
est wrapper sur ce élève à unIList<KeyValuePair<string,IList<string>>>
(notez queNameValueCollection
antérieure génériques) - les opérations commeGet(string)
sontO(n)
et les éléments peuvent être récupérés par l'indice et chaque Touche correspond à une ou plus Valeurs (ce qui diffère de l'unDictionary<string,string>
).Une raison pour cela est expliqué dans le NameValueCollection documentation:
Le plus récent
"remplacement"de la structure des données avec certains un comportement similaire pourNameValueCollection
estRecherche<string,string>
. (Toutefois, il n'est pas directement en charge les mêmes opérations que est immuable comme spender notes.)Heureux de codage.
OriginalL'auteur
NameValueCollection existant .NET 1.0 et 1.1, KeyValuePair est un type générique et n'a pas été ajoutés .NET avant la version 2.0. Toutes les classes de la Système.Les Collections.Spécialisé tous les précède de plus de génériques; elle contient certaines fortement typé (spécialisé si vous voulez) pour une utilisation lorsque c'est exactement ce dont vous avez besoin pour les utilisateurs de ne pas avoir à jeter de l'objet à la chaîne.
OriginalL'auteur shf301
KeyValuePair est le composant que vous utilisez pour effectuer une itération sur un Dictionnaire
NameValueCollection est indexable.
OriginalL'auteur bevacqua