Technorati Tag: ,

Questo post nasce dal fatto che troppo spesso vedo codice non sfruttato, del tipo, un ArrayList per memorizzare 4 valori stringa, o peggio, una generic List<String> per memorizzare magari un semplice array di stringhe. Mi è sembrato quindi opportuno fare il punto della situazione, con questo post, nel quale voglio semplicemente dire che il Namespace System.Collections ... è un Namespace e non una classe, quindi magari al suo interno possiamo trovare diversi oggetti ... e non solo ArrayList e List<T>.

Collezione Caratteristiche Deriva da Quando va usata
ArrayList le dimensioni posso variare, puo' contenere oggetti, ed infine, utilizza gli indici per accedere agli items System.Collections non conosco l' oggetto che voglio memorizzare
SortedList Una HashTable con funzioni di sort System.Collections ho una coppia chiave/valore e voglio anche ordinarla
Queue Collezione di oggetti con gestione FIFO (First in First out) System.Collections gestisce le code di oggetti
Stack Collezione di oggetti con gestione LIFO (Last in First out) System.Collections come sopra
HashTable Collezione di coppie (chiave-valore) ricercabili per nome System.Collections ho una grossa lista di coppie chiave/valore
BitArray Collezione di valori booleani (true/false) System.Collections devo memorizzare un elenco di valori booleani
StringCollection Collezione di stringhe con dimensioni variabili System.Collections devo lavorare con elenchi di valori stringa e non so quanti sono
StringDictionary Collezione di chiavi/valori di tipo Stringa System.Collections  
ListDictionary Collezione di oggetti, per piccole quantità System.Collections devo usare una HashTable ma gli items sono pochi
HybridDictionary Ibrido tra Hashtable e ListDictionary System.Collections devo usare una HashTable ma non conosco il numero di items
NameValueCollection come la HashTable ma fornisce anche l' indice dell' Item System.Collections devo usare una HashTable ma voglio anche conoscere l' indice di un item
Ogni correzione è ben accetta.