Un NameValueCollection
può recuperare gli elementi in base all'indice (ma non si può chiedere per l'indice di una chiave specifica o elemento). Così,
var coll = new NameValueCollection();
coll.Add("Z", "1");
coll.Add("A", "2");
Console.WriteLine("{0} = {1}", coll.GetKey(0), coll[0]); // prints "Z = 1"
Tuttavia, si comporta in modo strano (a fronte di un IDictionary) quando si aggiunge un tasto più volte:
var coll = new NameValueCollection();
coll.Add("Z", "1");
coll.Add("A", "2");
coll.Add("Z", "3");
Console.WriteLine(coll[0]); // prints "1,3"
Il comportamento è ben documentato, tuttavia.
Attenzione: NameValueCollection
fa non attrezzo IDictionary
.
Per inciso: Dictionary<K,V>
non ha alcun indice è possibile utilizzare, ma finché si aggiungono solo elementi, e mai rimuovere qualsiasi, l'ordine degli elementi è l'ordine di inserimento. Si noti che questo è un dettaglio dell'attuale implementazione di Microsoft: la documentazione afferma esplicitamente che l'ordine è casuale, quindi questo comportamento può cambiare nelle versioni future di .NET Framework o Mono.
questo è grande. Un'alternativa a Hashtable e Dictionary che è semplice. Inoltre, la nota sull'ordinamento predefinito del dizionario è molto utile. –
Ricordarsi di aggiungere: usando System.Collections.Specialized; –