Converter matriz de strings em List <string>


162

Já vi exemplos disso usando .ToList()tipos de matriz, isso parece estar disponível apenas no .Net 3.5+ . Estou trabalhando com o .NET Framework 2.0 em um projeto ASP.NET que não pode ser atualizado no momento, então fiquei pensando: existe outra solução? Um que é mais elegante do que percorrer a matriz e adicionar cada elemento a esta lista (o que não é problema; estou me perguntando se existe uma solução melhor para fins de aprendizado)?

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

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

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

Se eu tiver que fazer dessa maneira, existe uma maneira de desalocar a matriz remanescente da memória depois de copiá-la na minha lista?


1
Não se preocupe em limpar o seu arr, o coletor de lixo fará um trabalho muito melhor do que você.
9788 Mike Christensen

37
Você especificamente. E eu. Na verdade, acho que apenas Jon Skeet tem permissão para fazer sua própria coleta de lixo.
25813 Mike Christensen

@MikeChristensen Não resisti a votar em favor do comentário de Jon Skeet. lol
Ctrl S

Respostas:



26

No .Net 3.5, você pode usar o método de extensão LINQ que (às vezes) torna o código um pouco melhor.

O uso fica assim:

using System.Linq; 

// ...

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

PS. Também existe um ToArray()método que funciona de outra maneira.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.