Linq Count based on Boolean

Total Post:61


 2181  View(s)
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


Code       Negative
123        True
123        True
123        False
456        True
456        True
456        True
789        False
789        False

Code       Count
123        -1
456        -3
789        +2

Any help on above is really appreciated.
  1. Re: Linq Count based on Boolean


    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) }


Please check, If you want to make this post sponsored

You are not a Sponsored Member. Click Here to Subscribe the Membership.