C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


(過去ログ 155 を表示中)
■90278 / )  Re[1]: C# LINQ IEnumerableからDataTable
□投稿者/ WebSurfer (1775回)-(2019/02/22(Fri) 10:42:26)
No90273 (Kawauso さん) に返信

> IEnumerable<string[]> から DataTableへ変換したいです。。。
> Csvから IEnumerable<string[]>にするところまではできました。。。

CSV ファイル ⇒ IEnumerable<string[]> 型オブジェクト ⇒ DataTable

と CSV から直接 DataTable を作らないでワンクッション置いてるようですが、それは
必須ですか?

必須でなければ、TextFieldParser の string[] fields = parser.ReadFields(); で
fields を取得したたびに DataTable に加えていけば一手間減ってよりスマートにな
ると思うのですが。

以下の時事のコードの終わりの方に TextFieldParser を使って CSV を読んで DataTable
を作る例がありますので興味があれば見てください。CSV ファイルの一行目がヘッダーの
場合の例ですが、ヘッダーが無くても対応可能です(サンプルコードはヘッダー情報を元に
DataTable の骨格を作っていますが、それを自力でコードを書いて作成することで)

CSV パーサー
http://surferonwww.info/BlogEngine/post/2010/10/28/CSV-parser.aspx

他に Jet Provider を利用する例もサンプルコードには含まれています。schema.ini を
作れば DataTable の列の型など細かく設定できますし、コード量もかなり少なくできま
す。Jet Provider を使った方がメリットが多いかもしれません。
返信 編集キー/


管理者用

- Child Tree -