gpt4 book ai didi

c# - 如何将 .csv 文件的每一行分隔成一个字符串列表>

转载 作者:行者123 更新时间:2023-11-30 19:05:29 25 4
gpt4 key购买 nike

我是 c# 的新手,正在尝试读取 .csv 文件并将每一行文本放入单独的列表项中,以便稍后对其进行排序。

.csv 文件的组织方式如下:

1;"final60";"United Kingdom";"2013-12-06 15:48:16";
2;"donnyr8";"Netherlands";"2013-12-06 15:54:32"; etc

这是我的第一次尝试,但没有成功。它在 Visual Studios 2010 中没有显示任何错误,但是当我运行控制台程序时,它显示以下异常而不是列表。引发了“System.OutOFMemoryException”类型的异常。 这很奇怪,因为 .csv 文件只包含一个小列表。

try
{
// load csv file
using (StreamReader file = new StreamReader("file.csv"))
{
string line = file.ReadLine();
List<string> fileList = new List<string>();
// Do something with the lines from the file until the end of
// the file is reached.
while (line != null)
{

fileList.Add(line);

}
foreach (string fileListLine in fileList)
{
Console.WriteLine(fileListLine);
}
}
}
catch (Exception e)
{
// Let the user know what went wrong.
Console.WriteLine("The file could not be read:");
Console.WriteLine(e.Message);
}

那么我的处理方式是否正确?

最佳答案

如果您正在加载的文件不是很大,那么您可以使用 File.ReadAllLines :

List<string> list = File.ReadAllLines("file.csv").ToList();

正如 Servy 在评论中指出的那样,最好使用 File.ReadLines方法。

File.ReadLines - MSDN

The ReadLines and ReadAllLines methods differ as follows: When you use ReadLines, you can start enumerating the collection of strings before the whole collection is returned; when you use ReadAllLines, you must wait for the whole array of strings be returned before you can access the array. Therefore, when you are working with very large files, ReadLines can be more efficient.

如果你需要 List<string>那么你可以这样做:

List<string> list = File.ReadLines("file.csv").ToList();

关于c# - 如何将 .csv 文件的每一行分隔成一个字符串列表>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21484619/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com