PV0C#で下記のような2つのDataTableの比較をし、column2に対してTable1のみ存在するデータの取得処理を作成しています。}}一応上記のやり方でcolumn2に対して、Table1のみ存在するデータが取得できますが、テーブルのデータが大量だと処理時間がかかってしまいます。処理時間を早める方法はありますでしょうか?追記:当初のコードが同じデータが存在する場合となっていたので、修正しました。(1)直してくれたのに水を差すようですが、修正されたコードでも意図したデータは取れないと思います。更新順0コードの内容はTable1に存在するcolumn2が、Table2のcolumn2と一致する数だけTable1をAddしていますね。p).ToList();LINQを用います。EXISTS句を再現することで「Table1とTable2のうちTable1にのみ存在するcolumn2を持つ行」を返すことができると思います。これが一番早いと思います。(3)返答が遅くなってすみません。コードの内容が間違っているのにも関わらず回答ありがとうございます。上記方法で比較することが出来ました。ありがとうございました。考えるとこの方法は多分一番遅いです。flied_onionさんのHashSet<T>のほうが2000倍ぐらい早いです。11:230他の方も指摘されていますがコードが元々の話と異なっているので、とりあえず提示された条件に加えて以下のような条件だとして考えます。データ格納済みの素のDataTableである。列はとりあえずすべて文字列とする(決まってないとやりにくいので)。Table1側のDataRowのListを抽出する。3.5以降で、テスト用のデータテーブルは以下のメソッドで生成でされるようなものとします。ループでDataTableSize件分のDataTableを作成しますが、引数にtrueを与えるとループカウンタの奇数をスキップして、レコードが半分になります。dt;}これを用いてTable1とTable2は以下のように作成します。使用することとします。Table2についてfor文やforeachを用いた場合は以下のようになります。これが現在の状態だと思います。3500のループとなります。LINQ拡張メソッドを使うかがいいのではないかと思います。HashSetの方が簡単に書けるのでまずはHashSetで示します。HashSetを使うHashSet<T>はキーだけを格納するDictionary<T>のイメージです。3.5未満の場合はHashSetがないのでその場合はDictionaryで代用できますが、Dictionaryは重複したキーが登録されると例外が発生するのでちょっと注意が必要です(HashSetは例外は起きません)。なり、Containsもハッシュ値で行われるので高速です。比較用のクラスを作成する必要があるので手軽とは言えません。(ただのList<String>などの場合はもっと手軽に利用できます。比較方法はcolumn2の内容に応じて検討しなければならない。}}以下のように使います。list;こちらも高速です。余談ですがただのListなどの場合は比較用クラスは不要で以下のようになります。).ToList();といった書き方は、結局双方を列挙して比較してますので元々のfor文とあまり変わらないと思います。(Any使った方はfor文より遅くなりました。)HashSetを使った場合リストが一つ増えますのでその点(メモリ消費)は注意が必要ですが速度の向上にはつながると思います。(6)たくさんの回答ありがとうございます。Takagi_Hinkoさんの方法で比較することができましたが、今後同じような比較がありましたら参考にさせていただきます。01:04ウォッチこの質問への回答やコメントをメールでお知らせします。