我很好奇我如何可以比較兩個數據表在C#中。我有兩個數據表,一個數據表包含FirstName和LastName,數據表2有Field1,Field2,First_Name和Last_Name。比較兩個DataTables爲非匹配記錄C#
我想查找數據表1中存在的數據表2中不存在的記錄。有人曾經這麼做過嗎?任何幫助,將不勝感激。謝謝!
我很好奇我如何可以比較兩個數據表在C#中。我有兩個數據表,一個數據表包含FirstName和LastName,數據表2有Field1,Field2,First_Name和Last_Name。比較兩個DataTables爲非匹配記錄C#
我想查找數據表1中存在的數據表2中不存在的記錄。有人曾經這麼做過嗎?任何幫助,將不勝感激。謝謝!
使用LINQ將是最自然的,但您需要將數據錶轉換爲Except
。
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")}));
如果您需要原始DataRow
S,你可以使用一個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")));
明天早上我會試試,謝謝! – bbcompent1
好吧,這很好,我唯一需要做的就是交換兩個數據表,然後我得到了預期的結果。非常感謝您的幫助! – bbcompent1
你嘗試過什麼?發佈你的代碼 – maccettura
我在問,因爲這是我以前沒有做過的事情,即使是明確解釋它如何完成的鏈接也會很好。我在Google上閱讀過一些文章,但他們沒有多大意義,或者作者有點困惑。我只想要一個麪包屑在這裏開始我的方式。謝謝! – bbcompent1
您可以使用Linq: https://stackoverflow.com/questions/9289475/difference-of-two-datatables-in-c-sharp – naturalbornlazy