Un NameValueCollection
peut récupérer des éléments par index (mais vous ne pouvez pas demander l'indice d'une clé ou d'un élément spécifique). Ainsi,
var coll = new NameValueCollection();
coll.Add("Z", "1");
coll.Add("A", "2");
Console.WriteLine("{0} = {1}", coll.GetKey(0), coll[0]); // prints "Z = 1"
Cependant, il se comporte bizarrement (par rapport à un IDictionary) lorsque vous ajoutez un plusieurs fois sur la touche:
var coll = new NameValueCollection();
coll.Add("Z", "1");
coll.Add("A", "2");
coll.Add("Z", "3");
Console.WriteLine(coll[0]); // prints "1,3"
Le comportement est bien documenté, cependant.
Attention: NameValueCollection
ne pas mettre en œuvre IDictionary
.
En aparté: Dictionary<K,V>
n'a aucun index que vous pouvez utiliser, mais aussi longtemps que vous ajoutez que des éléments, et ne jamais supprimer, l'ordre des éléments est l'ordre d'insertion. Notez qu'il s'agit d'un détail de l'implémentation actuelle de Microsoft: la documentation indique explicitement que l'ordre est aléatoire, ce comportement peut donc changer dans les futures versions de .NET Framework ou Mono.
ce qui est excellent. Une alternative à Hashtable et Dictionary qui est simple. En outre, la note sur l'ordre de tri par défaut de Dictionary est très utile. –
Rappelez-vous d'ajouter: à l'aide System.Collections.Specialized; –