質問: | ID | 名前 | 身長 | | --- | --- | --- | | 1 | 田中 | 170 | | 2 | 木村 | 160 | というテーブルAに | ID | 体重 | | --- | --- | | 1 | 50 | | 2 | 40 | というテーブルBを結合して | ID | 名前 | 身長 | 体重 | | --- | --- | --- | --- | | 1 | 田中 | 170 | 50 | | 2 | 木村 | 160 | 40 | というテーブルにしたいです。 今は行ごとのループで列に値を追加していますが、数万行あるため非常に時間が掛かっています。 パフォーマンスの良い方法はないでしょうか。 追記 今の処理 1. テーブルAへ列:体重を追加(Columm.Add) 2. テーブルAのRowでループ(ForEach) 2.1. TableA(i)("体重")=TableB(i)("体重") です。
回答: カラム名「体重」でのアクセスを序数でのアクセスに変えれば速くなると思いますが、DataTable を使う限りそれ以上にはならないと思います。 あとカウンタ変数 i を使っているので foreach を for に直すことで少し最適化できるような気もしますが、これはほとんど気休め程度でしょう。 DataTable よりももっと軽量なクラスを自作して使うと改善すると思います。 意外と遅い DataTable 、なので List を使うと 5 倍早くなる