5

I have some data which i need to make some statistics. I need to group the users by age.

var byAge = displayResult.GroupBy(x => x.Age);

Which i can do as above. However, this gives me ages like 19, 20, 21 etc. what I want is grouping age by 10 years, such as

users between 10-20 yearsold, 20-30 years old, 30-40 years old etc.

How can i get that?

DarthVader
  • 52,984
  • 76
  • 209
  • 300

1 Answers1

7

You can truncate the trailing digit by dividing by ten using integer division, and then multiplying back by ten.

 var byAge = displayResult.GroupBy(x => 10*(x.Age/10));

Everyone between 0, inclusive, and 10, exclusive, will be in the bucket 0. from 10 to 20 will be under the key 10, from 20 to 30 - under the key 20, and so on.

Sergey Kalinichenko
  • 714,442
  • 84
  • 1,110
  • 1,523