我如何讓這變成空?如何讓平均值爲空
public double? GetSignalAverage
{
get
{
var signalaverage = Gsmdata.Select(x => x.SignalStrength)
.Average();
return Math.Round(signalaverage, 2);
}
}
SignalStrength是一個int
我如何讓這變成空?如何讓平均值爲空
public double? GetSignalAverage
{
get
{
var signalaverage = Gsmdata.Select(x => x.SignalStrength)
.Average();
return Math.Round(signalaverage, 2);
}
}
SignalStrength是一個int
檢查,如果集合爲空或空:
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);
}
}
謝謝你的建設性答案:) – user3240428
你必須申報SignalStrength
作爲int?
允許null
值。 (如果不這樣,int
將是其默認值,即0)。但即使如此,如果存在任何非空元素(請參閱documentation),即使如此,Average()
也會簡單地忽略這些值。
如果他們都null
,Average
將返回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);
}
在什麼條件它應該返回null? – dkozl
有時signalstrength沒有價值 – user3240428