按日期范围计算用户数

时间:2013-03-08 22:38:16

标签: c# entity-framework datetime count linq-to-entities

我有以下用户实体:

public class User
{
  public DateTime Birthday { get; set; }
}

如何按年龄范围计算用户数?类似的东西:

0 to 5
5 to 15
...

我尝试了以下内容:

var usersByAge = context.Users.GroupBy(x => x.Info.Birthday).Count();

但是这会按照他们的生日对用户进行分组,并按天计算。 它按天计算,因为时间总是空的......

但我需要按年龄范围分组。 例如,获取从生日到DateTime.Now的年份范围。 然后按“0-5”,“5-15”分组,......然后计数。

我该怎么做?请告诉我是否清楚。

1 个答案:

答案 0 :(得分:1)

您可以选择像这样过滤它们:

var year = DateTime.Now.Year;
var users = yourUserCollection.Count(x =>
    x.BirthDay.Year - year >= 5 && 
    x.BirthDay.Year - year <= 11);