繁体   English   中英

从CSV文件读取数据

[英]Reading data from a CSV file

我正在寻找从CSV文件中读取数据的最快方法。 我尝试过两种不同的方式。

方法#1:将CSV文件中的所有行读入数组,然后迭代数组:

String[] csv = File.ReadAllLines(@"E:\be.csv");

for (int i = 0; i < csv.Length; i++)
{
    tx.Text = csv[i];
    tx.Refresh();
}

方法#2 *:使用StreamReader

StreamReader sr = new StreamReader(new FileStream(@"E:\be.csv");

while (!sr.EndOfStream)
{
    string seg = sr.ReadLine();
    tx.Text = sr.ReadLine();
    tx.Refresh();
}

使用StreamReader似乎要快得多。 是否有更快的方法从CSV文件导入数据?

我必须建议可以在NuGet中找到的CsvHelper。 昨天第一次使用它,现在是我的解决方案。

http://www.nuget.org/packages/CsvHelper/

对于您实际想知道的更快的问题,我可能会说只是执行File.ReadAllLines(...) ,但最好是您实际尝试建立一个测试以同时执行两个选项数百次并查看哪个选项最长的。

另外,不要忘记丢弃StreamReader 继续把它包装在using语句中,这样一切都可能被关闭/处理掉。

Sebastien Loren 在CodeProject上Fast CSV Reader可能是解决之道。

它实现了IDataReader ,并且几乎像StreamReader一样起作用。

强烈推荐。

.NET有一个内置的CSV解析器,称为TextFieldParser

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM