Convertir matriz de cadenas a List <string>


162

He visto ejemplos de esto usando .ToList()tipos de matriz, parece que solo está disponible en .Net 3.5+ . Estoy trabajando con .NET Framework 2.0 en un proyecto ASP.NET que no se puede actualizar en este momento, así que me preguntaba: ¿hay otra solución? ¿Una que sea más elegante que recorrer la matriz y agregar cada elemento a esta Lista (lo cual no es un problema; solo me pregunto si hay una mejor solución para fines de aprendizaje)?

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 alguna forma de desasignar la matriz persistente de la memoria después de copiarla en mi lista?


1
No te preocupes por limpiar tu arr, el recolector de basura hará un mejor trabajo que tú.
Mike Christensen el

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

@MikeChristensen No pude resistir votar por el comentario de Jon Skeet. lol
Ctrl S

Respuestas:



26

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

El uso se ve así:

using System.Linq; 

// ...

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

PD. También hay un ToArray()método que funciona de otra manera.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.