Miglior contenitore stringa: StringCollection, Collection , List , ArrayList, ..?
-
21-08-2019 - |
Domanda
Qual è il contenitore più adatto solo per le stringhe tenendo in alcune serie con non-predeterminato limite superiore, la cui lunghezza è sconosciuta sulla sua creazione.
Per il codice semplice come:
var list = new SomeContainer(); // size is unknown
for()/foreach()/do()/while() // any loop
{
list.Add(string);
}
E 'StringCollection
come Collection ottimizzato per la stringa, o semplicemente Collection<string>
o List<string>
o ArrayList
? Qual è la differenza tra loro?
Soluzione
Per quello che ti serve, List<string>
è probabilmente il più versatile. StringCollection
era a portata di mano in 1.1, quando (non generici) avevi bisogno di classi specifiche per collezioni tipizzati. Collection<string>
è utile se si desidera creare una sottoclasse di fornire la convalida ecc.
In ogni caso, al punto 3.5, LINQ fornirà un sacco di metodi aggiuntivi per loro - ma senza LINQ, List<T>
ha più funzioni (Find
, Sort
, etc)
Altri suggerimenti
Un List<T>
sarebbe il più efficace.
Il Collection<T>
classe è solo un wrapper per un altro tipo di lista, il costruttore senza parametri inizializza il ArrayList
con un List<object>
.
Un String
è essenzialmente lo stesso di un StringCollection
, in modo che avrebbe dovuto lanciare gli elementi da <=> durante la lettura da esso.
Un <=> è solo un tipo di involucro sicuro per un <=>.