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

我一直在做一个小项目,我遇到了这个问题。我有一个充满行的 txt 文件,我需要将它们存储在一个列表中。有什么优雅的方法吗?这是我的代码,但是,它不会起作用,因为有些东西没有绑定。txt 文件有 126 行,但我只需要其中的 125 行。感谢您的时间,任何帮助表示赞赏:)


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

List<string> listNumbers = new List<string>(); //place where all numbers will be stored

for (int i = 0; i<125; i++)

{

    listNumbers[i] = Number[i];

}


烙印99
浏览 1654回答 3
3回答

元芳怎么了

只需致电ToList():myArray.ToList();或者:var&nbsp;list&nbsp;=&nbsp;new&nbsp;List<string>(myArray);

繁华开满天机

一个Array<string>implements IEnumerable<string>,所以如果你使用System.Linq,一堆方便的扩展方法是可用的。using System.Linq;// ...var listNumbers = System.IO.File&nbsp; &nbsp; .ReadAllLines("Numbers.txt")&nbsp; &nbsp; .Take(125)&nbsp; &nbsp; .ToList();

jeck猫

List 有一个AddRange()方法,它接受一个可枚举(例如您的数组)并将其中的所有项目添加到列表中。它很有用,因为它不需要 LINQ,并且与将数组传递给 List 构造函数不同,如果列表在其他地方构造/已经由其他进程实例化,则可以使用它&nbsp; &nbsp; //if your list is constructed elsewhere&nbsp;&nbsp; &nbsp; &nbsp;List<string> listNumbers = new List<string>();&nbsp;&nbsp; &nbsp; //addrange can still be used to populate it&nbsp;&nbsp; &nbsp; string[] lines = System.IO.File.ReadAllLines("Numbers.txt");&nbsp; &nbsp; listNumbers.AddRange(lines);类似的 InsertRange 可用于将枚举中的所有值放入特定位置的列表中如果您要求只将一定数量的项目放入列表中,最紧凑的方法可能是使用 linq:var list = lines.Take(125).ToList();下一个最紧凑的方法是像你所做的那样,使用 for 循环
打开App,查看更多内容
随时随地看视频慕课网APP