1

列ごとに変数を読み取り、列を照会するためのより最適な方法は何ですか。これが私が現在行っていることです。

var lines = File.ReadAllLines("readme.csv").Select(a => a.Split(','));

//load columns into variables
var col1 = from line in lines select line[1];
var col2 = from line in lines select line[2];
var col3 = from line in lines select line[3];
var col4 = from line in lines select line[4];

//query column 1
foreach (string line in col1)
{ //query if ...
}
//query column 2
foreach (string line in col2)
{ //query if ...
}
//query column 3
foreach (string line in col3)
{ //query if...
}
4

2 に答える 2

1

列ごとに変数を読み取り、列を照会するためのより最適な方法は何ですか。

以前に解決された問題を解決しようとしています。エスケープと引用に関連する CSV ファイルには、いくつかのニュアンスがあります。

Code Project の CSV Reader を使用することをお勧めします。

http://www.codeproject.com/Articles/9258/A-Fast-CSV-Reader

私はこれを非常に大きなデータ ファイル (マルチ GB) で広範囲に使用しました。

BufferedStream最大のパフォーマンスを得るには、 a を使用します。

using (FileStream fs = File.Open(csvPath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
using (BufferedStream bs = new BufferedStream(fs))
using (CsvReader csv = new CsvReader(new StreamReader(bs), true))
于 2013-03-25T21:43:01.780 に答える
1

ToList() は、コメントで回答されている重複ループを防ぎます

于 2013-03-25T22:54:00.417 に答える