最近我遇到了这个编程问题。我想多次重复使用这种“平均”方法,但是具有不同的整数属性。我试图通过互联网冲浪,寻找类似的东西,但没有发现任何东西。 所以我想请您帮忙。也许您可以建议我一些更有用的方法,或者根本不适合这种情况的此类问题解决方法?
public double CountAverage(NameOfTheProperty)
{
double Average = 0;
double Amount = 0;
foreach (Athlete athlete in this.Athletes)
{
Amount += athlete.NameOfTheProperty;
}
return Average;
}
答案 0 :(得分:7)
通常,这可以通过一个函数来解决。就您而言,已经有一个LINQ函数可以这样做(称为Average
),但向您展示它是如何工作的:
public double CountAverage(Func<Athlete, double> func)
{
double Average = 0;
double Amount = 0;
foreach (Athlete athlete in this.Athletes)
{
Amount += func(athlete);
}
return Amount / this.Athletes.Count;
}
您可以这样使用它:
double d = CountAverage(a => a.NameOfProperty);
LINQ版本:
double d = this.Athletes.Average(a => a.NameOfProperty);