LINQ COUNT BASED ON BOOLEAN

Brad Pitt

Total Post:61

Points:429
Posted by  Brad Pitt
VB.Net 
 1581  View(s)
Ratings:
Rate this:
Hi Developers, 

I'm trying to get a linq query running which I can't get right.

I have a list of a custom class called Occurrences, this class has two properties Code as String and Negative as Boolean. I am trying to get the net total of Code (group by Code) so this would be a count of Code where Negative = False (All positive), subtract a count of Code where Negative = True (All negative). There is no quantity in the Occurrences class, each occurrence counts as 1 negative or positive.

I tried to do this in 3 separate queries which did not work, ideally I would like to do this in 1 query.

Please let me know if you need a better explanation or if I am unclear.

Edit: Sample input/output

Input:

Code       Negative
-------------------
123        True
123        True
123        False
456        True
456        True
456        True
789        False
789        False
Output:

Code       Count
----------------
123        -1
456        -3
789        +2

Any help on above is really appreciated.
  1. AVADHESH PATEL

    Post:604

    Points:4228
    Re: Linq Count based on Boolean

    Hi,


    You can try as following

    from item in data group item by item.Code into g

    select new { Code = g.Key, Count = g.Sum(x => x.Negative ? -1 : 1) }

Answer

NEWSLETTER

Enter your email address here always to be updated. We promise not to spam!