我有一个模型,我正在尝试计算加权平均值:
public class ObScore
{
public int ObScoreId { get; set; }
public int AnalystId { get; set; }
public DateTime Date { get; set; }
public int PossScore { get; set; }
public int Weight { get; set; }
}
我可以这样做,使用以下代码:
//
// GET: /Test/
public ActionResult Test()
{
var scores = db.ObScores.ToList();
double weightedValueSum = scores.Sum(x=>x.PossScore * x.Weight);
double weightSum = scores.Sum(x => x.Weight);
if (weightSum != 0)
{
ViewBag.wa2 = weightedValueSum / weightSum;
}
return View();
}
但是,我希望能够添加一个 GroupBy 子句,所以我可以按 Date/AnalystId 等进行分组。
是否可以将两个 LINQ 语句结合起来,这样我就可以做到这一点,同时在 weightSum = 0 时仍然避免 DIV/0?
谢谢,马克