C# 在控制器中计算百分比列以在视图中使用
是否可以在控制器中计算一个百分比列,该列将模型中另一个数字的总和作为其分母-例如:C# 在控制器中计算百分比列以在视图中使用,c#,asp.net,asp.net-mvc,asp.net-mvc-3,linq,C#,Asp.net,Asp.net Mvc,Asp.net Mvc 3,Linq,是否可以在控制器中计算一个百分比列,该列将模型中另一个数字的总和作为其分母-例如: var sites = db.Calls.Where(x =>x.status != "Resolved" && x.status != "Closed").GroupBy(calls => new { calls.site }) .Select(s => new SiteVM { Site = s.Key.s
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应该是数字除以s.计数之和,例如:
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);
如果s.Count(),则可以首先引发除零异常检查=0@NitinVarpe对,我们应该加上这张支票