计算控制器中的百分比列以供视图



可以在控制器中计算一个百分比列,该列以模型中的另一个数字作为其分母 - 所以类似:

之类的东西
 var sites = db.Calls.Where(x =>x.status != "Resolved" && x.status != "Closed").GroupBy(calls => new { calls.site })
          .Select(s => new SiteVM
          {
              Site = s.Key.site,
              Number = s.Count(),
              Perc = s.Count() / s.Sum(x => x.site.Count())
          }).OrderByDescending(z => z.Number);

我知道这部分不对:s.sum(x => x.site.count())

因此,perc应该是划分的数字,例如:

Site        Number    Perc (number / sum of number)
London      100       50
Birmingham  30        15
Glasgow     70        35

谢谢,

标记

您可以做到这一点:

var calls = db.Calls.Where(x =>x.status != "Resolved" && x.status != "Closed").ToList();
var callsCount = calls.Count();
var sites = calls.GroupBy(calls => new { calls.site })
          .Select(s => new SiteVM
          {
              Site = s.Key.site,
              Number = s.Count(),
              Perc = callsCount / s.Count() * 100
          }).OrderByDescending(z => z.Number);

最新更新