[英]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.