如何在Asp.net MVC中按图表控件显示年龄组的用户数

时间:2018-05-07 06:08:05

标签: c# asp.net-mvc linq

如何在Asp.net MVC的图表控件中按年龄组显示用户数?

以下是获取年龄组和每个年龄组中用户数量的逻辑,但如何在图表控件中使用它会让我感到困惑。请建议我是否需要添加另一个类或需要使用组操作来修改LINQ查询。

public class AgeVM
    {
        public string AgeGroupName { get; set; }
        public int NoofUsers { get; set; }
    }

这是我的ViewModel

a

请帮我节省一天。

1 个答案:

答案 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;

        }

这不是所有代码,但我给了你一个主意。如何简化代码。