2012-04-12 17 views
112

He visto ejemplos de esto usando .ToList() en tipos de matriz, esto parece estar disponible solo in .Net 3.5+. Estoy trabajando con .NET Framework 2.0 en un proyecto ASP.NET que no se puede actualizar en este momento, por lo que me preguntaba: ¿hay alguna otra solución? Uno que es más elegante que recorrer el conjunto y agregar cada elemento a esta lista (lo cual no es problema, solo me pregunto si existe una mejor solución para el aprendizaje).Convertir matriz de cadenas a List <string>

string[] arr = { "Alpha", "Beta", "Gamma" }; 

List<string> openItems = new List<string>(); 

foreach (string arrItem in arr) 
{ 
    openItems.Add(arrItem); 
} 

Si tengo que hacerlo de esta manera, ¿hay una manera de anular la planificación de la matriz de la memoria persistente después de lo copio en mi lista?

+1

No se preocupe por limpiar su 'arr', el recolector de basura hará un trabajo mucho mejor que usted. –

+4

Yo específicamente ... ¿o desarrolladores en general? –

+29

Usted específicamente. Y yo. De hecho, creo que solo Jon Skeet puede hacer su propia recolección de basura. –

Respuesta

303

Solo use this constructor de List<T>. Acepta cualquier IEnumerable<T> como argumento.

string[] arr = ... 
List<string> list = new List<string>(arr); 
5

Desde .Net 3.5 puede utilizar el método de extensión LINQ que (a veces) hace que el flujo de código sea un poco mejor.

uso es el siguiente:

using System.Linq; 

// ... 

public void My() 
{ 
    var myArray = new[] { "abc", "123", "zyx" }; 
    List<string> myList = myArray.ToList(); 
} 

PS. También existe el método ToArray() que funciona de otra manera.

Cuestiones relacionadas