C#安全导航操作员避免被零除异常
我正在创建一个excel报告,用于计算几个月内的加权平均成本。这是100多个月,其中一些月没有任何数量。如果月份没有数量,我将其设置为0以避免出现空异常错误 在生成报告时,对于那些没有数量的月份,我会得到一个被零除的异常。是否有方法使用安全导航(.?)运算符检查总和计算中的值是否为0 以下是我尝试过的,但没有用: 如果数量为空,则将属性设置为0m:C#安全导航操作员避免被零除异常,c#,excel,C#,Excel,我正在创建一个excel报告,用于计算几个月内的加权平均成本。这是100多个月,其中一些月没有任何数量。如果月份没有数量,我将其设置为0以避免出现空异常错误 在生成报告时,对于那些没有数量的月份,我会得到一个被零除的异常。是否有方法使用安全导航(.?)运算符检查总和计算中的值是否为0 以下是我尝试过的,但没有用: 如果数量为空,则将属性设置为0m: WeightedQty = (x.Item2 / 100m) * x.Item1?.qty ?? 0m 进行求和计算,得到除以零的误差:
WeightedQty = (x.Item2 / 100m) * x.Item1?.qty ?? 0m
进行求和计算,得到除以零的误差:
WeightedCost = accrual_qtys.Sum(y => y.Quantity * key.wac) / accrual_qtys.Sum(y => y.WeightedQty == 0m ? y.WeightedQty : 1m)
请试试这个
WeightedCost = accrual_qtys.Sum(y => y.Quantity * key.wac) / (accrual_qtys.Any(y => y.WeightedQty > 0m) ? accrual_qtys.Sum(y => y.WeightedQty) : 1m))