我怎样才能返回一个int数组的平均值

tes*_*est 6 c#

我需要定义两个返回sumaverage数组的方法,定义的方法如下: -

public int Sum(params int[] customerssalary)
{

         // I tried the following but it fails   return customerssalary.sum();
}
Run Code Online (Sandbox Code Playgroud)

另一个问题是如何返回这些int值的平均值?

L.B*_*L.B 37

customerssalary.Average();
customerssalary.Sum();
Run Code Online (Sandbox Code Playgroud)

  • 最好和最简单的方法。需要Linq (2认同)

mus*_*fan 13

这就是你应该这样做的方式,我之所以这样说,是因为你是C#的新手,应该尝试理解一些基本的东西是如何工作的!

public int Sum(params int[] customerssalary)
{
   int result = 0;

   for(int i = 0; i < customerssalary.Length; i++)
   {
      result += customerssalary[i];
   }

   return result;
}
Run Code Online (Sandbox Code Playgroud)

使用此Sum功能,您可以使用它来计算平均值...

public decimal Average(params int[] customerssalary)
{
   int sum = Sum(customerssalary);
   decimal result = (decimal)sum / customerssalary.Length;
   return result;
}
Run Code Online (Sandbox Code Playgroud)

decimal在第二个函数中使用类型的原因是因为除法可以很容易地返回非整数结果


其他人已经提供了Linq替代品,无论如何我都会使用它,但是对于Linq而言,无论如何都没有必要拥有自己的功能.我已经假设你被要求实现这样的功能作为一个任务来证明你对C#的理解,但我可能是错的.

  • 今天早上明显离线的讽刺检测: - /对不起! (2认同)

Jon*_*eet 12

使用ints.sum()有两个问题:

  • 变量被调用customerssalary,而不是ints
  • C#区分大小写 - 该方法被调用Sum(),而不是sum().

另外,你需要一个using指令

using System.Linq;
Run Code Online (Sandbox Code Playgroud)

一旦你得到了总和,你可以除以数组的长度来得到平均值 - 你不需要使用Average()哪个将再次迭代数组.

int sum = customerssalary.Sum();
int average = sum / customerssalary.Length;
Run Code Online (Sandbox Code Playgroud)

或作为double:

double average = ((double) sum) / customerssalary.Length;
Run Code Online (Sandbox Code Playgroud)