Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在控制器中计算百分比列以在视图中使用_C#_Asp.net_Asp.net Mvc_Asp.net Mvc 3_Linq - Fatal编程技术网

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对,我们应该加上这张支票