繁体   English   中英

Linq年龄组按总计数

[英]Linq Age GroupBy Aggregate Count

我在获得此linq的正确结果时遇到问题。

 var transactions = from trans in tblMemberInfo.AsEnumerable()
                    orderby trans.Field<Int32>("AGE") ascending
                    group trans by trans.Field<Int32>("AGE") into groupTrans

                    select new
                    {                                      
                         ZeroToSix = groupTrans.Count(age => age.Field<Int32>("AGE") >= 0 && age.Field<Int32>("AGE") <= 6) 
                    };

我有一个数据表,其中包含下面的数据。 现在,我想对年龄介于0到5之间的所有年龄计数进行求和。

AGE     Count
0       6
1       6
2       7
3       5
4       5
5       20
6       5
7       5
8       5
9       5
10      5

我希望看到这样的结果。

Age

ZeroToFive = 49
AboveSix = 25

检查一下:

// mock data
var data = new List<dynamic> {
    new { Age = 0, Count = 6 },
    new { Age = 1, Count = 6 },
    new { Age = 2, Count = 7 },
    new { Age = 3, Count = 5 },
    new { Age = 4, Count = 5 },
    new { Age = 5, Count = 20 },
    new { Age = 6, Count = 5 },
    new { Age = 7, Count = 5 },
    new { Age = 8, Count = 5 },
    new { Age = 9, Count = 5 },
    new { Age = 10, Count = 5 },
};

var age = new { 
                ZeroToFive = data.Where(x => x.Age < 6).Sum(x => x.Count),
                AboveSix = data.Where(x => x.Age >= 6).Sum(x => x.Count)
              };

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM