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.