[英]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.