Converti l'array di stringhe in List <string>


162

Ho visto esempi di questo fatto usando .ToList()su tipi di array, questo sembra essere disponibile solo in .Net 3.5+ . Sto lavorando con .NET Framework 2.0 su un progetto ASP.NET che non può essere aggiornato in questo momento, quindi mi chiedevo: esiste un'altra soluzione? Uno che è più elegante che passare in rassegna l'array e aggiungere ogni elemento a questo elenco (il che non è un problema; mi chiedo solo se esiste una soluzione migliore ai fini dell'apprendimento)?

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

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

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

Se devo farlo in questo modo, c'è un modo per deallocare l'array persistente dalla memoria dopo averlo copiato nel mio elenco?


1
Non preoccuparti di ripulire il tuo arr, il bidone della spazzatura farà un lavoro molto migliore di quello che farai.
Mike Christensen,

37
Tu in particolare. E io. In effetti, penso che solo a Jon Skeet sia permesso di fare la propria raccolta dei rifiuti.
Mike Christensen,

@MikeChristensen Non ho potuto resistere a questo per il commento di Jon Skeet. lol
Ctrl S

Risposte:



26

Da .Net 3.5 è possibile utilizzare il metodo di estensione LINQ che (a volte) migliora leggermente il flusso del codice.

L'utilizzo è simile al seguente:

using System.Linq; 

// ...

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

PS. C'è anche un ToArray()metodo che funziona in altro modo.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.