くろ猫Biz

技術的な事を書いてます。記憶を記録に・・・。

【C#】【ライブラリ】CSVへエンティティでアクセスしたい・・・。C#

 

nihonneko.hatenablog.com

 

以前、上記の記事でC#CSVを扱うライブラリについて書きましたが、探したところC#でもORMマッパーのように扱えるライブラリを発見しました。

 

それが↓これ。CsvHelperです。

 

github.com

 

マニュアル

joshclose.github.io

 

Gitクライアント環境が無い場合やVisualStudioのバージョンの関係でNuGetが使えない場合等は上記サイトの右ナビから「ZIP」ファイルがダウンロードできます。

 

解凍後、「CsvHelper」フォルダ内の「AssemblyInfo.cs」以外のCSファイルをプロジェクトに取り込むと使えるようになるようです。

(フォルダはバージョン別かな)

 

 

読み込み例です。

 

↓こちらを参考に事前にマッパークラスを作成しました。

okazuki.hatenablog.com

 

↓必要に応じて追記します。

 

using CsvHelper;
using System.Collections.Generic;

 

 ↓読み込み例です。

 

// パーサー生成(ファイルパスと文字コード指定)
CsvParser parser = new CsvParser(new StreamReader("ファイルパス", Encoding.GetEncoding("文字コード")));

// ヘッダー行あり
parser.Configuration.HasHeaderRecord = true;
parser.Configuration.RegisterClassMap<マッパークラス>();
CsvReader reader = new CsvReader(parser);
return reader.GetRecords<エンティティクラス>().GetEnumerator();

 

while (ite.MoveNext())
{
    エンティティクラス entity = (エンティティクラス)ite.Current;

 

    ここでエンティティにアクセスする

 

}

 

 

エンティティとマピングのみ書けば使えるようです。

CSVにもDBにもエンティティでアクセスできるのはいいですね。

 

 

 

参考サイト

okazuki.hatenablog.com

angelpinpoint.seesaa.net