为了账号安全,请及时绑定邮箱和手机立即绑定

在c#中将string[]转换为List<string>

在c#中将string[]转换为List<string>

C#
烙印99 2022-06-12 11:18:23
我一直在做一个小项目,我遇到了这个问题。我有一个充满行的 txt 文件,我需要将它们存储在一个列表中。有什么优雅的方法吗?这是我的代码,但是,它不会起作用,因为有些东西没有绑定。txt 文件有 126 行,但我只需要其中的 125 行。感谢您的时间,任何帮助表示赞赏:)string[] Number = System.IO.File.ReadAllLines("Numbers.txt");List<string> listNumbers = new List<string>(); //place where all numbers will be storedfor (int i = 0; i<125; i++){    listNumbers[i] = Number[i];}
查看完整描述

3 回答

?
元芳怎么了

TA贡献1798条经验 获得超7个赞

只需致电ToList()

myArray.ToList();

或者:

var list = new List<string>(myArray);


查看完整回答
反对 回复 2022-06-12
?
繁华开满天机

TA贡献1816条经验 获得超4个赞

一个Array<string>implements IEnumerable<string>,所以如果你使用System.Linq,一堆方便的扩展方法是可用的。


using System.Linq;


// ...


var listNumbers = System.IO.File

    .ReadAllLines("Numbers.txt")

    .Take(125)

    .ToList();


查看完整回答
反对 回复 2022-06-12
?
jeck猫

TA贡献1909条经验 获得超7个赞

List 有一个AddRange()方法,它接受一个可枚举(例如您的数组)并将其中的所有项目添加到列表中。它很有用,因为它不需要 LINQ,并且与将数组传递给 List 构造函数不同,如果列表在其他地方构造/已经由其他进程实例化,则可以使用它


    //if your list is constructed elsewhere 

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


    //addrange can still be used to populate it 

    string[] lines = System.IO.File.ReadAllLines("Numbers.txt");

    listNumbers.AddRange(lines);

类似的 InsertRange 可用于将枚举中的所有值放入特定位置的列表中


如果您要求只将一定数量的项目放入列表中,最紧凑的方法可能是使用 linq:


var list = lines.Take(125).ToList();

下一个最紧凑的方法是像你所做的那样,使用 for 循环


查看完整回答
反对 回复 2022-06-12
  • 3 回答
  • 0 关注
  • 1653 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信