加重平均を計算しようとしているモデルがあります。
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 などでグループ化できます。
weightSum = 0 の場合に DIV/0 を回避しながら、これを行うことができるように、2 つの LINQ ステートメントを組み合わせることは可能ですか?
ありがとう、マーク