我需要定义两个返回int数组的sum
和average
的方法
方法定义如下: -
public int Sum(params int[] customerssalary)
{
// I tried the following but it fails return customerssalary.sum();
}
另一个问题是如何返回这些int值的平均值?。
答案 0 :(得分:32)
customerssalary.Average();
customerssalary.Sum();
答案 1 :(得分:12)
使用ints.sum()
有两个问题:
customerssalary
,而非ints
Sum()
,而不是sum()
。此外,您还需要
的using指令using System.Linq;
一旦得到总和,你可以除以数组的长度来得到平均值 - 你不需要使用Average()
,它将再次迭代数组。
int sum = customerssalary.Sum();
int average = sum / customerssalary.Length;
或double
:
double average = ((double) sum) / customerssalary.Length;
答案 2 :(得分:11)
这是你应该这样做的方式,我之所以这样说,是因为你是C#的新手,应该尝试理解一些基本的东西是如何运作的!
public int Sum(params int[] customerssalary)
{
int result = 0;
for(int i = 0; i < customerssalary.Length; i++)
{
result += customerssalary[i];
}
return result;
}
使用此Sum
函数,您可以使用它来计算平均值...
public decimal Average(params int[] customerssalary)
{
int sum = Sum(customerssalary);
decimal result = (decimal)sum / customerssalary.Length;
return result;
}
在第二个函数中使用decimal
类型的原因是因为除法可以很容易地返回非整数结果
其他人已经提供了Linq替代方案,无论如何我都会使用它,但是对于Linq而言,无论如何都没有必要拥有自己的功能。我假设你被要求实现这样的功能,以证明你对C#的理解,但我可能是错的。
答案 3 :(得分:2)
虽然上面的答案都是正确的不同风格,但我想提供以下解决方案,其中包括空检查:
decimal sum = (customerssalary == null) ? 0 : customerssalary.Sum();
decimal avg = (customerssalary == null) ? 0 : customerssalary.Average();
答案 4 :(得分:1)
您尝试过错误的变量,ints
不是参数的正确名称。
public int Sum(params int[] customerssalary)
{
return customerssalary.Sum();
}
public double Avg(params int[] customerssalary)
{
return customerssalary.Average();
}
但你认为真的需要这些方法吗?
答案 5 :(得分:0)
如果您使用的是visual studio 2005,那么
public void sumAverageElements(int[] arr)
{
int size =arr.Length;
int sum = 0;
int average = 0;
for (int i = 0; i < size; i++)
{
sum += arr[i];
}
average = sum / size; // sum divided by total elements in array
Console.WriteLine("The Sum Of Array Elements Is : " + sum);
Console.WriteLine("The Average Of Array Elements Is : " + average);
}
答案 6 :(得分:0)
我引用了很多结果并修改了我的代码工作
foreach (var rate in rateing)
{
sum += Convert.ToInt32(rate.Rate);
}
if(rateing.Count()!= 0)
{
float avg = (float)sum / (float)rateing.Count();
saloonusers.Rate = avg;
}
else
{
saloonusers.Rate = (float)0.0;
}