質問: File.ReadAllLines(fp,encoding);//一括でファイル読み込み if(lines.Length>0) { foreach(string strWorld in strHeader) { dataTable.Columns.Add(new DataColumn(strWorld)); } for(int row=1;row
回答: **質問の詳細化に合わせて全面改訂:** DataTableの各行のデータ追加は、基本的には以下の記事が参考になるでしょう。 DataTableの実践的な使い方 CSVデータファイルを読み取って通知された作業用のDataTableを基に`foreach`でループすれば良いでしょう。 とりあえず動作確認していない概念的なものですが、以下になります。 あるいは、ReadCSV()を汎用的に作らずに、以下を応用して専用の処理を作ることもできるでしょう。 ``` DataTable table = new DataTable("ResultTable"); // 結果用テーブル作成 table.Columns.Add("からむ1", typeof(String)); table.Columns.Add("カラムA", typeof(String)); table.Columns.Add("からむ2", typeof(String)); table.Columns.Add("からむ3", typeof(String)); table.Columns.Add("カラムB", typeof(String)); table.Columns.Add("からむ4", typeof(String)); table.Columns.Add("からむ5", typeof(String)); DataTable csvtable = ReadCSV('CSVデータファイルパス'); // CSVデータ取得 foreach(DataRow csvrow in csvtable) // コピー処理 { DataRow dtrow = table.NewRow(); dtrow["からむ1"] = csvrow["カラム1"]; dtrow["カラムA"] = ""; dtrow["からむ2"] = csvrow["カラム2"]; dtrow["からむ3"] = csvrow["カラム3"]; dtrow["カラムB"] = ""; dtrow["からむ4"] = csvrow["カラム4"]; dtrow["からむ5"] = csvrow["カラム5"]; // 入れるデータの無いカラムは特に空文字列を入れなくても良いかも? table.Rows.Add(dtrow); } ``` DataGridViewへの反映や結果のCSVファイルへの出力は別途行ってください。 p.s. この回答へのコメントも意味が無いものになるので消しておいてください。