■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 を使った方がメリットが多いかもしれません。
|
|