LINQでCSVファイルを読み込む

.NETには、CSVファイルを読み取る際に便利なクラス(TextFieldParser)が「VB.NET」のライブラリに存在する。

このクラスを利用してCSVファイルをLINQで簡潔に扱えるようにする。

まず、CSVファイルへのコンテキストを生成する為のTextFieldクラスを作成する。

このクラスのContextメソッドでコンテキストを生成することでロジックを意識することなくCSVファイルの読み込みが可能になる。

 

 

次は、実際にTextFieldクラスを利用してコンテキストを生成し、CSVファイルへアクセスしてLINQにより入力した条件に一致するレコードデータを表示するコードを記述する。

尚、AsParallel()メソッドを呼び出すことで条件判定をマルチスレッド化できるので、データ量が多い場合は、並列化による高速化が期待できる。

 

 

複数ファイルを跨いで検索する場合は以下のように記述することができる。

※全てのファイルレイアウトが同じ場合