Konvertieren Sie ein Array von Zeichenfolgen in List <string>


162

Ich habe Beispiele dafür gesehen, die mit .ToList()Array-Typen durchgeführt wurden. Dies scheint nur in .Net 3.5+ verfügbar zu sein . Ich arbeite mit .NET Framework 2.0 an einem ASP.NET-Projekt, das derzeit nicht aktualisiert werden kann. Daher habe ich mich gefragt: Gibt es eine andere Lösung? Eine, die eleganter ist, als das Array zu durchlaufen und jedes Element zu dieser Liste hinzuzufügen (was kein Problem ist; ich frage mich nur, ob es eine bessere Lösung für Lernzwecke gibt)?

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

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

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

Wenn ich es auf diese Weise tun muss, gibt es eine Möglichkeit, die Zuordnung des verbleibenden Arrays aus dem Speicher aufzuheben, nachdem ich es in meine Liste kopiert habe?


1
Mach dir keine Sorgen um das Aufräumen arr, der Müllsammler wird das viel besser machen als du.
Mike Christensen

37
Sie speziell. Und ich. Tatsächlich denke ich, dass nur Jon Skeet seine eigene Müllabfuhr machen darf.
Mike Christensen

@ MikeChristensen Konnte nicht widerstehen, das für den Jon Skeet-Kommentar zu stimmen. lol
Ctrl S

Antworten:



26

Ab .Net 3.5 können Sie die LINQ-Erweiterungsmethode verwenden, die (manchmal) den Codefluss etwas verbessert.

Die Verwendung sieht folgendermaßen aus:

using System.Linq; 

// ...

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

PS. Es gibt auch eine ToArray()Methode, die auf andere Weise funktioniert.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.