我一直在做一个小项目,遇到了这个问题。我有一个充满行的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];
}
答案 0 :(得分:5)
只需致电ToList()
:
myArray.ToList();
或:
var list = new List<string>(myArray);
答案 1 :(得分:4)
Array<string>
实现了IEnumerable<string>
,因此,如果您使用System.Linq
,则可以使用许多便捷的扩展方法。
using System.Linq;
// ...
var listNumbers = System.IO.File
.ReadAllLines("Numbers.txt")
.Take(125)
.ToList();
答案 2 :(得分:0)
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循环完成操作