[英]Select query case when with condition with LinQ C#
我想在帶有r.Field<bool>("isDefault") != false
Select
查詢中添加一個條件,當DetailNo
等於ZZZZZ
,我可以將所有代碼作為r.Field<string>("Code")
與Distinct
。
例如:
Code | DetailNo | isDefault Code | DetailNo | isDefault
IP6 | ZZZZZ | true IP6 | AAAAA | false
IP7 | ZZZZZ | true IP7 | AAAAA | false
IP7 | ZZZZZ | true | AAAAA | false
IP8 | ZZZZZ | false IP8 | AAAAA | true
IP7 | ZZZZZ | true IP7 | AAAAA | false
IP6 | ZZZZZ | true IP6 | AAAAA | false
IP8 | ZZZZZ | false IP8 | AAAAA | true
結果必須是:
Code | DetailNo | isDefault Code | DetailNo | isDefault
IP6 | ZZZZZ | true IP6 | AAAAA | false
IP7 | ZZZZZ | true IP7 | AAAAA | false
IP8 | AAAAA | true
int countItem = dt
.AsEnumerable()
.Where(r => r.Field<string>("Code") != "")
.Select(r => r.Field<string>("DetailNo") == "ZZZZZ" ? r.Field<string>("Code") : r.Field<string>("Code") + r.Field<int>("TotalID"))
.Distinct()
.Count();
更改:
Where(r => r.Field<string>("Code") != "")
對此:
Where(r => r.Field<string>("Code") != "" && (r.Field<string>("Code") != "ZZZZ" || r.Field<bool>("isDefault"))))
因此,您正在按不為空的代碼進行過濾,並且(代碼等於ZZZZ或IsDefault為true。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.