2017-06-29 19 views
0

C#で2つのデータテーブルを比較する方法が不思議です。私は2つのデータテーブルを持っています。データテーブル1にはFirstNameとLastName、データテーブル2にはField1、Field2、First_Name、Last_Nameが含まれています。不一致レコードの2つのデータテーブルの比較C#

データテーブル1に存在し、データテーブル2に存在しないレコードを探したいと思いますか?どんな助けもありがとう。ありがとうございました!

+0

あなたは何を試してみましたか?あなたのコードを投稿してください – maccettura

+0

これは私が前にやったことがないので、私は尋ねています。私はGoogleでいくつかの記事を読んだことがありますが、あまり意味がないか、著者がちょっと混乱しています。私は私の方法で私を始めるためにパンくずリストを求めているだけです。ありがとう! – bbcompent1

+0

Linqを使用することができます: https://stackoverflow.com/questions/9289475/difference-of-two-datatables-in-c-sharp – naturalbornlazy

答えて

1

LINQの使用は最も自然ですが、DataTableから変換してExceptを使用する必要があります。あなたは、元のDataRowのが必要な場合は

var In_dt1_only = dt1.AsEnumerable().Select(r => new { first = r.Field<string>("First"), last = r.Field<string>("Last")}).Except(dt2.AsEnumerable().Select(r => new { first = r.Field<string>("First"), last = r.Field<string>("Last")})); 

、あなたの代わりにWhereを使用することができます。

var datarows_in_dt1_only = dt1.AsEnumerable().Where(dr1 => !dt2.AsEnumerable().Any(dr2 => dr1.Field<string>("First") == dr2.Field<string>("First") && dr1.Field<string>("Last") == dr2.Field<string>("Last"))); 
+0

私は明日の朝にお試しください、ありがとう! – bbcompent1

+0

これはうまくいきました。私がしなければならなかったのは、2つのデータテーブルを入れ替えるだけでした。ご協力いただき誠にありがとうございます! – bbcompent1

関連する問題