Konwertuj tablicę ciągów na List <string>


162

Widziałem przykłady tego wykonane przy użyciu .ToList()typów tablicowych, wydaje się, że jest to dostępne tylko w .Net 3.5+ . Pracuję z .NET Framework 2.0 nad projektem ASP.NET, którego nie można w tej chwili zaktualizować, więc zastanawiałem się: czy jest inne rozwiązanie? Taki, który jest bardziej elegancki niż przeglądanie tablicy i dodawanie każdego elementu do tej listy (co nie stanowi problemu; zastanawiam się tylko, czy istnieje lepsze rozwiązanie do celów edukacyjnych)?

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

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

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

Jeśli muszę to zrobić w ten sposób, czy istnieje sposób na zwolnienie trwałej tablicy z pamięci po skopiowaniu jej na moją listę?


1
Nie martw się o sprzątanie swojego arr, śmieciarz wykona o wiele lepszą robotę niż ty.
Mike Christensen

37
Ty konkretnie. I ja. W rzeczywistości myślę, że tylko Jon Skeet może samodzielnie zbierać śmieci.
Mike Christensen

@MikeChristensen Nie mogłem oprzeć się głosowaniu za komentarzem Jona Skeeta. lol
Ctrl S

Odpowiedzi:



26

Z .Net 3.5 można użyć metody rozszerzenia LINQ, która (czasami) sprawia, że ​​kod jest trochę lepszy.

Sposób użycia wygląda następująco:

using System.Linq; 

// ...

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

PS. Jest też ToArray()metoda, która działa w inny sposób.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.