如何在Asp.net MVC的图表控件中按年龄组显示用户数?
以下是获取年龄组和每个年龄组中用户数量的逻辑,但如何在图表控件中使用它会让我感到困惑。请建议我是否需要添加另一个类或需要使用组操作来修改LINQ查询。
public class AgeVM
{
public string AgeGroupName { get; set; }
public int NoofUsers { get; set; }
}
这是我的ViewModel
a
请帮我节省一天。
答案 0 :(得分:0)
您可以使用字典轻松清晰地显示getuserAge()
功能,将AgeGroupName
定义为四个常量的关键字" teen"," Young" ......
遍历每个记录并将各个键的值递增1。在循环结束时,您将获得密钥AgeGroupName
,值为NoofUsers
。
public List<AgeVM> getuserAge()
{
List<AgeVM> listAgeVM = new List<AgeVM>();
Dictionary<string, int> temp = new Dictionary<string, int>();
temp.Add("teen", 0);
temp.Add("Young", 0);
temp.Add("Medioker", 0);
temp.Add("Senior Citizen", 0);
var res = from a in _Registrationrepository.GetAll()
select new
{
age = a.DOB,
name = a.FirstName,
};
foreach (var item in res)
{
AgeVM ageVM = new AgeVM();
//Write separate function to calculate age.
string agegrp;
var realAge = currentYear - year;
if (realAge < 18 && realAge > 13)
{
temp["teen"]++;
}
if (realAge < 26 && realAge > 18)
{
temp["Young"]++;
}
if (realAge < 45 && realAge > 26)
{
temp["Medioker"]++;
}
else
{
temp["Senior Citizen"]++;
}
}
//Now outside foreach loop iterate through each key, value pair of dictionary and assing key to `AgeGroupName` and value to `NoofUsers` property
foreach(KeyValuePair<string, int> item in temp)
{
ageVM.AgeGroupName = item.Key;
ageVM.NoofUsers = item.Value;
}
return listAgeVM;
}
这不是所有代码,但我给了你一个主意。如何简化代码。