替代C#中的Linq Average方法

时间:2012-10-27 16:49:16

标签: c# linq

我想知道一种在不使用Linq Method Average()的情况下编写此代码的替代方法。

   double[] array1 = { 1, 2, 3, 5, 0 };
        double average1 = array1.Average();
        Console.WriteLine(average1);

3 个答案:

答案 0 :(得分:4)

这个问题有点模糊,但有些替代方案:

double average2 = array1.Sum() / Array.Length;

double sum = 0;
foreach(var item in array1)
{
   sum += item;
}
double average2 = sum / array1.Length;

答案 1 :(得分:2)

不知道为什么你不想使用LINQ Average函数,但你可以循环遍历数组的元素以计算总和,最后除以元素的数量:

double[] array1 = { 1, 2, 3, 5, 0 };
double average1 = 0;
foreach (var item in array1)
{
    average1 += item;
}
average1 = average1 / array1.Length;
Console.WriteLine(average1);

现在您看一下这段代码,很明显为什么以下内容要好得多:

double[] array1 = { 1, 2, 3, 5, 0 };
double average1 = array1.Average();
Console.WriteLine(average1);

答案 2 :(得分:1)

为了给你一个简洁的答案,不涉及任何LINQ方法(虽然你为什么要限制自己,打败我):

double[] arr = new[] {1.0, 2.0, 3.0};
double avg = 0;
Array.ForEach(arr, x => avg += x)
avg = avg / arr.Length;