将字符串数组转换为List <string>


162

我已经看过使用.ToList()数组类型完成此操作的示例,这似乎仅在.Net 3.5+中可用。我正在当前无法升级的ASP.NET项目上使用.NET Framework 2.0,所以我想知道:还有其他解决方案吗?一个比循环遍历数组并将每个元素添加到此List更优雅的方法(这没问题;我只是想知道是否有更好的解决方案用于学习)?

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

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

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

如果必须这样做,是否有办法在将数组复制到列表中后从内存中取消分配该数组?


1
不必担心清理您的arr,垃圾收集器会比您做得更好。
Mike Christensen

37
你真是 和我。实际上,我认为只允许乔恩·斯基特(Jon Skeet)进行自己的垃圾收集。
Mike Christensen

@MikeChristensen无法拒绝Jon Skeet的评论。大声笑
Ctrl S

Answers:



26

从.Net 3.5开始,您可以使用LINQ扩展方法,该方法有时会使代码流变得更好。

用法如下所示:

using System.Linq; 

// ...

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

PS。还有ToArray()一种以其他方式起作用的方法。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.