【问题标题】:Convert array of strings to List<string>将字符串数组转换为 List<string>
【发布时间】:2012-04-12 18:18:29
【问题描述】:

我已经看到在数组类型上使用.ToList() 完成此操作的示例,这似乎仅适用于in .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);
}

如果我必须这样做,有没有办法在将延迟数组复制到我的列表后从内存中释放它?

【问题讨论】:

  • 别担心清理你的arr,垃圾收集器会比你做得更好。
  • 特别是你。和我。事实上,我认为只有 Jon Skeet 被允许自己进行垃圾收集。
  • @MikeChristensen 忍不住为 Jon Skeet 的评论点赞。大声笑

标签: c# c#-2.0


【解决方案1】:

只需使用this constructorList&lt;T&gt;。它接受任何IEnumerable&lt;T&gt; 作为参数。

string[] arr = ...
List<string> list = new List<string>(arr);

【讨论】:

    【解决方案2】:

    从 .Net 3.5 开始,您可以使用 LINQ 扩展方法(有时)使代码流更好一些。

    用法如下:

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

    PS。还有ToArray() 方法以其他方式工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多