C# 2個DataTable做比較,找出差集

C# 2個DataTable做比較,找出差集

寫法很簡單

如果DataTable的欄位名稱相同

直接用Except

//要有相同的欄位名稱
IEnumerable<DataRow> query2 = DT1.AsEnumerable().Except(DT2.AsEnumerable(), DataRowComparer.Default);
DataTable dt3 = query2.CopyToDataTable();

 

如果DataTable的欄位名稱不相同

要用Contains

//沒有相同的欄位名稱
var tempExcept = from n in DT1.AsEnumerable()
where
!(from nn in DT2.AsEnumerable() select nn.Field<string>("NAME")).Contains(
n.Field<string>("NAME"))
select n;

 

自我LV~