業務場景,接受乙個datatable ;根需求需要按照品號去重(業務場景:明細表存在多筆相同品號)
在這樣的場景下不能簡單的使用如下寫法去重:
var _list = _tempdatatable.asenumerable().where(p => p["total_inv_qty"].todecimal() > p["total_issue_inv_qty"].todecimal()).distinct().tolist();
定義乙個自定義比較器:
class datarowcomparer : iequalitycomparer
public int gethashcode(datarow row)//重寫hashcode
} //去重操作:
var _list = _tempdatatable.asenumerable().where(p => p["total_inv_qty"].todecimal() > p["total_issue_inv_qty"].todecimal()).distinct(new datarowcomparer()).tolist();
lamda根據自定義條件去重
由於distinct 不提供按照屬性對物件列表進行去重的直接實現,要想按物件屬性去重無法實現。解決方案 public static predicate distinctbykey function super t,object keyextractor res res.stream filter x...
Linq 去重簡介
說到去重首先想到的便是distinct,但是也不是所有地方都適用。下面就講乙個不適用的場景,並給出解決方案。var list await query.getall asnotracking select x x.provincecode distinct tolistasync 這段 獲取 prov...
使用自定義字段
轉儲所有自定義字段作為列表顯示乙個特定自定義欄位的值id,mood true mood 將是自定義欄位的id值 顯示相同自定義欄位id的多個值id,songs false 僅在存在時顯示自定義字段 邏輯 url get post meta post id,snippet reference url ...