[英]subtract two DataTables that have the same shema, E.g Minus SQL query
我有兩個具有相同模式(相同的列名和類型)的數據表。我想獲取出現在第一個而不是第二個中的行。 有人可以幫我嗎? 謝謝。
幸運的是,MS 為DataTable
創建了擴展方法 ,使您可以使用Linq
方法(例如Except
)來查詢數據行,並編寫了一個實現IEqualityComparer<DataRow>
的類,該類按列值比較DataRow
實例:
var rows = dt1.AsEnumerable()
.Except(dt2.AsEnumerable(),DataRowComparer.Default);
我會這樣寫:
var onlyIn1 = dataTable1.Where( row1 => !dataTable2.Rows.Any( row2 => row1["CustomerKey"] == row2["CustomerKey"]) ).ToList();
您可以嘗試以下方法:
var onlyIn1 = db.Table1.Except(db.Table2).ToList();
我從未測試過,但它應該像T-SQL的EXCEPT
一樣工作
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.