在linq中除以零例外

Seb*_*n A 1 c# linq

我有以下代码,它提出除零异常.我如何纠正并改进代码?

List<RelacionEjecucionPendientes> iniciativasEjecucionPendienteses = actividades
.GroupBy(cl => cl.iniciativaName)
.Select(cl => new RelacionEjecucionPendientes
{
    Nombre = cl.Key,
    ATiempoEjecucionCantidad = cl.Count(c => c.estado != "No Iniciada" && (Convert.ToDateTime(c.fechaVencimiento).Day - actualTime.Day) >= 0),
    ATiempoEjecucionPorcentaje = String.Format("{0:0}", 
        (cl.Count(c => c.estado != "No Iniciada" && (Convert.ToDateTime(c.fechaVencimiento).Day - actualTime.Day) >= 0) /
         cl.Count(c => c.estado != "No Iniciada") != 0 ? cl.Count(c => c.estado != "No Iniciada") : 1))
}).ToList();
Run Code Online (Sandbox Code Playgroud)

D S*_*ley 6

添加括号以对条件运算符进行分组.分区在conditional(? :)运算符之前,因此它试图在运算符之前除以0 :

           ATiempoEjecucionPorcentaje = String.Format("{0:0}", 
                        (cl.Count(c => c.estado != "No Iniciada" && (Convert.ToDateTime(c.fechaVencimiento).Day - actualTime.Day) >= 0) /
                        (cl.Count(c => c.estado != "No Iniciada") != 0 ? cl.Count(c => c.estado != "No Iniciada") : 1)))
Run Code Online (Sandbox Code Playgroud)

  • [操作顺序](https://msdn.microsoft.com/en-us/library/aa691323(v = vs.71).aspx)供参考 (2认同)