C# 使用多个属性重用一个方法

C# 使用多个属性重用一个方法,c#,properties,C#,Properties,最近我遇到了这个编程问题。我想多次重复使用这个“平均”方法,但使用不同的整数属性。我试着在网上冲浪,寻找类似的东西,但什么也没找到。 所以我想请你帮个小忙。也许你可以给我一些更有用的建议,或者这种解决问题的方式根本不适合这种情况 public double CountAverage(NameOfTheProperty) { double Average = 0; double Amount = 0; foreach (Athlete athlete in this.At

最近我遇到了这个编程问题。我想多次重复使用这个“平均”方法,但使用不同的整数属性。我试着在网上冲浪,寻找类似的东西,但什么也没找到。 所以我想请你帮个小忙。也许你可以给我一些更有用的建议,或者这种解决问题的方式根本不适合这种情况

public double CountAverage(NameOfTheProperty)
{
    double Average = 0;
    double Amount = 0;

    foreach (Athlete athlete in this.Athletes)
    {
        Amount += athlete.NameOfTheProperty;
    }

    return Average;
}

通常这是通过一个函数来解决的。在您的情况下,已经有一个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;
}
LINQ版本:

double d = this.Athletes.Average(a => a.NameOfProperty);
double d = this.Athletes.Average(a => a.NameOfProperty);