如何允许平均值为空

本文关键字:平均值 何允许 | 更新日期: 2023-09-27 17:59:37

如何允许此get为null?

public double? GetSignalAverage
{
    get
    {
       var signalaverage = Gsmdata.Select(x => x.SignalStrength)
                                  .Average();
       return Math.Round(signalaverage, 2);
    }
}

SignalStrength是一个Int

如何允许平均值为空

检查集合是否为null或空:

public double? GetSignalAverage
{
    get
    {
       if(Gsmdata == null || GsmData.Count() == 0)
           return null;
       var signalaverage = Gsmdata.Select(x => x.SignalStrength)
                                  .Average();
       return Math.Round(signalaverage, 2);
    }
}

您必须将SignalStrength声明为int?才能允许null值。(如果不这样做,int将是它的默认值,即0。)但即便如此,如果有任何非null元素,Average()也会忽略这些值(请参阅文档)。

如果它们都是nullAverage将返回null,您可以捕获并返回,如下所示:

double? signalaverage = Gsmdata.Select(x => x.SignalStrength)
                              .Average();
if(signalaverage == null)
{
    return signalaverage; // which is essentially 'return null;'
}
else
{        
   return Math.Round(signalaverage, 2);
}