只是想向那里的C#专家寻求帮助。我已经为此苦苦挣扎了一段时间,只是想不通。基本上,我有一个文本文件数组,其中包含50个数字(整数)。我需要将这50个数字乘以一个常数,然后得出平均值。麻烦的是,我无法终生解决如何得出计算所得数字的平均值,而不仅仅是计算数组中的数字。任何帮助将不胜感激!
到目前为止,这是我的代码:
int[] hours = new int[50];
// populate values code goes here
int total = 0;
double average = 0;
for (int index = 0; index < hours.Length; index++)
{
total = total + hours[index];
}
//average = total / numbers.Length; // Integer division int / int = int
average = (double)total / hours.Length;
Console.WriteLine("Total = " + total);
Console.WriteLine("Average = " + average.ToString("N2"));
完整代码here。
答案 0 :(得分:2)
您可以使用LINQ求平均值:
var avg = hours.DefaultIfEmpty(0).Average(x => x) * constantValue;
.DefaultIfEmpty(0)
阻止.Average()
在空列表上引发异常(在这种情况下,它将返回0)。
答案 1 :(得分:1)
const int sizeOfNums;
int[] hours = new int[sizeOfNums];
const float amountToMultiply =123.44f;
//Load up you numbers from text file into hours
float multipliedAverage = 0.0f;
for(int i=0; i< sizeOfNums; i++)
{
multipliedAverage += hours[i];
}
multipliedAverage = (multipliedAverage/ sizeOfNums) * amountToMultiply;
答案 2 :(得分:0)
其他方法:将小时数组转换为列表并使用LINQ:
var hrsList = hours.ToList();
var avr = hrsList.Select(x => x * constantValue).Average();