重用一种具有多个属性的方法

时间:2018-10-23 11:33:36

标签: c# properties

最近我遇到了这个编程问题。我想多次重复使用这种“平均”方法,但是具有不同的整数属性。我试图通过互联网冲浪,寻找类似的东西,但没有发现任何东西。 所以我想请您帮忙。也许您可以建议我一些更有用的方法,或者根本不适合这种情况的此类问题解决方法?

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

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

    return Average;
}

1 个答案:

答案 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);