在C#中编写以下函数的较短方法?

Vis*_*hal 3 c#

我有这个功能 -

public int GetAvgResult()
{
 var weeklyvalues=GetWeeklyValues();//gets list of weekly values.
 if (weeklyvalues.Count == 0)
                return 0;
            return (weeklyvalues.Sum() / weeklyvalues.Count);
}
Run Code Online (Sandbox Code Playgroud)

是否有更短的方式来使用?:或者其他东西写这个?

Ani*_*Ani 11

public double GetAvgResult()
{
    // Assumes GetWeeklyValues() never returns null.
    return GetWeeklyValues().DefaultIfEmpty().Average();
}
Run Code Online (Sandbox Code Playgroud)

请注意,这会返回一个double,我认为这是你真正想要的(一堆整数的平均值在逻辑上不是整数).您可以int根据需要将其强制转换,或者如果您希望始终坚持使用整数数学:

var seq = GetWeeklyValues().DefaultIfEmpty();
return seq.Sum() / seq.Count();
Run Code Online (Sandbox Code Playgroud)

  • 这赢得了简洁奖. (2认同)