Преобразовать массив строк в список <string>


162

Я видел примеры того, как это делается с использованием .ToList()типов массивов, кажется, что это доступно только в .Net 3.5+ . Я работаю с .NET Framework 2.0 над проектом ASP.NET, который не может быть обновлен в настоящее время, поэтому мне было интересно: есть ли другое решение? Тот, который более элегантен, чем цикл по массиву и добавление каждого элемента в этот список (что не проблема; мне просто интересно, есть ли лучшее решение для целей обучения)?

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

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

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

Если я должен сделать это таким образом, есть ли способ освободить устаревший массив из памяти после того, как я скопирую его в свой список?


1
Не беспокойтесь об уборке arr, сборщик мусора справится с этим намного лучше, чем вы.
Майк Кристенсен

37
Вы конкретно. И я. На самом деле, я думаю, что только Джону Скиту разрешено заниматься сборкой мусора.
Майк Кристенсен

@MikeChristensen Не могу устоять перед голосованием за комментарий Джона Скита. LOL
Ctrl S

Ответы:



26

В .Net 3.5 вы можете использовать метод расширения LINQ, который (иногда) делает поток кода немного лучше.

Использование выглядит так:

using System.Linq; 

// ...

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

PS. Есть также ToArray()метод, который работает по-другому.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.