Reputation: 1143
I would like to add a condition in Select
query with r.Field<bool>("isDefault") != false
when DetailNo
equals to ZZZZZ
, I can get all codes as r.Field<string>("Code")
with Distinct
.
For example:
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
Result must be:
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();
Upvotes: 0
Views: 653
Reputation: 13767
Change:
Where(r => r.Field<string>("Code") != "")
To this:
Where(r => r.Field<string>("Code") != "" && (r.Field<string>("Code") != "ZZZZ" || r.Field<bool>("isDefault"))))
So, you are filtering by code not empty and (code is equals to ZZZZ or IsDefault is true.
Upvotes: 1