.net - que - public list c#
Mejor contenedor de cadenas: StringCollection, Collection<string>, List<string>, ArrayList,..? (2)
¿Cuál es el contenedor más adecuado solo para cadenas que se mantienen en una matriz con límite superior no predeterminado, cuya longitud se desconoce en su creación.
Para un código simple como:
var list = new SomeContainer(); // size is unknown
for()/foreach()/do()/while() // any loop
{
list.Add(string);
}
¿Es StringCollection
como colección optimizada para cadena, o simplemente Collection<string>
o List<string>
o ArrayList
? ¿Cuál es la diferencia entre ellos?
Para lo que necesita, List<string>
es probablemente el más versátil. StringCollection
fue útil en 1.1, cuando (sin genéricos) necesitaba clases específicas para colecciones tipadas. Collection<string>
es útil si desea crear una subclase para proporcionar validación, etc.
De cualquier manera, en 3.5, LINQ proporcionará muchos métodos adicionales para ellos, pero sin LINQ, List<T>
tiene más características ( Find
, Sort
, etc.)
Una List<T>
sería la más eficiente.
La clase Collection<T>
es simplemente un contenedor para otro tipo de lista, el constructor sin parámetros inicializa la Collection<T>
con una List<T>
.
Una ArrayList
es esencialmente lo mismo que una List<object>
, por lo que tendría que convertir los elementos en String
al leer de ella.
Un StringCollection
es solo un contenedor seguro para un ArrayList
.