我有这个功能 -
public int GetAvgResult()
{
var weeklyvalues=GetWeeklyValues();//gets list of weekly values.
if (weeklyvalues.Count == 0)
return 0;
return (weeklyvalues.Sum() / weeklyvalues.Count);
}
使用?:
或其他可能的东西有更短的方法吗?
答案 0 :(得分:11)
public double GetAvgResult()
{
// Assumes GetWeeklyValues() never returns null.
return GetWeeklyValues().DefaultIfEmpty().Average();
}
请注意,这会返回double
,我认为这是真正想要的(一堆整数的平均值在逻辑上不是整数)。如果需要,您可以将其强制转换为int
,或者如果您想要一直坚持整数数学:
var seq = GetWeeklyValues().DefaultIfEmpty();
return seq.Sum() / seq.Count();
答案 1 :(得分:2)
public int GetAvgResult()
{
var weeklyvalues = GetWeeklyValues();
return (weeklyvalues.Count != 0) ? (weeklyvalues.Sum() / weeklyvalues.Count) : 0;
}
或:
public int GetAvgResult()
{
return GetWeeklyValues().DefaultIfEmpty().Average();
}
答案 2 :(得分:2)
public int GetAvgResult()
{
var weeklyvalues = GetWeeklyValues(); //gets list of weekly values.
return weeklyvalues.Count == 0 ? 0 : weeklyvalues.Sum() / weeklyvalues.Count;
}
这就像我试图做到的那样短暂。是否有一个特定的原因(除了代码高尔夫)你正在尝试低字符数?
答案 3 :(得分:1)
public int GetAvgResult()
{
var weeklyvalues = GetWeeklyValues();//gets list of weekly values.
return (weeklyvalues.Count == 0) ? 0 : (weeklyvalues.Sum() / weeklyvalues.Count );
}
答案 4 :(得分:1)
public int GetAvgResult()
{
var weeklyvalues=GetWeeklyValues();//gets list of weekly values.
return weeklyvalues.Count == 0
? 0
: (weeklyvalues.Sum() / weeklyvalues.Count);
}