首先,我的问题与this one非常相似。事实上,它是一样的,除了我需要将每个用户分组如下:
根据dasblinkenlight在另一个问题中的答案,我能够做到:
var ageStats = vModel
.GroupBy(l => 10 * (l.Age / 10))
.OrderBy(x => x.Key)
.Select(g => new
{
Name = g.Key,
Count = g.Select(l => l.Age).Count()
}).ToList();
对于结果集:
那么我该怎样做才能完成我必须的模式?
非常感谢!!
答案 0 :(得分:2)
var ages = new[] { 12, 19, 29, 80 };
var grouped = ages.Select(r => new {
Name = r,
Count = vModel.Count(x => x.Age >= r)
});
答案 1 :(得分:0)
试试这个,但我不知道表现
var ages = new int[12, 19, 29, 80];
var func = new Func<int, int>(a=>{
for(var i = 0; i<ages.Length; i++){
if(a<ages[i])
continue;
return i;
}
return 0;
});
vModel.GroupBy(m=>func(m.Age))....
答案 2 :(得分:0)
您可以使用提及here的方法并使用此代码:
var ages = new List<int> { 12, 19, 29, 39, 49, 59, 69, 80, int.MaxValue};
var categories = vModel.GroupBy(item => ages.FirstOrDefault(ceil => ceil >= item));