将字符串数组转换为列表
问题描述:
我已经在阵列类型上看到了使用.ToList()
完成的示例,这似乎仅适用于in .Net 3.5+。我正在.NET Framework 2.0上处理目前无法升级的ASP.NET项目,所以我想知道:还有其他解决方案吗?比循环数组并添加每个元素到这个List更优雅(这是没有问题的;我只是想知道是否有更好的解决方案用于学习目的)?将字符串数组转换为列表<string>
string[] arr = { "Alpha", "Beta", "Gamma" };
List<string> openItems = new List<string>();
foreach (string arrItem in arr)
{
openItems.Add(arrItem);
}
如果我必须这样做,有没有办法从内存中释放留下的数组后,我将它复制到我的列表中?
答
只需使用this constructor的List<T>
即可。它接受任何IEnumerable<T>
作为论点。
string[] arr = ...
List<string> list = new List<string>(arr);
答
从.net 3.5开始,您可以使用LINQ扩展方法(有时会)使代码流更好一些。
用法是这样的:
using System.Linq;
// ...
public void My()
{
var myArray = new[] { "abc", "123", "zyx" };
List<string> myList = myArray.ToList();
}
PS。还有其他方式的ToArray()
方法。
不用担心清理你的'arr',垃圾回收器会比你做得更好。 – 2012-04-12 18:20:11
我特意......还是一般的开发者? – 2013-04-26 14:50:46
你具体。和我。事实上,我认为只有Jon Skeet可以做自己的垃圾收集。 – 2013-04-26 18:59:08