我正在研究一個簡單的程序來生成一個值數組並對它們執行一些基本的計算。從Main方法調用我的「Mean」和「Median」方法時遇到問題。我在下面附加了編譯器錯誤。謝謝。在同一個類中調用方法
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication4
{
class arraymod
{
static void Main(string[] args)
{
int[] values;
values = new int[10];
Random rand = new Random();
for (int i = 0; i < 10; i++)
{
values[i] = rand.Next(1,20);
}
Array.Sort(values);
for (int i = 0; i < 10; i++)
{
Console.WriteLine(values[i]);
}
Console.WriteLine("Min: {0}", values.Min());
Console.WriteLine("Max: {0}", values.Max());
Console.WriteLine("Sum: {0}", values.Sum());
Console.WriteLine("Mean: {0}", values.Mean()); //program fails here
Console.WriteLine("Median: {0}", values.Median());
}
public int Mean(int[] arr)
{
int valuesMean = arr.Sum()/arr.Count();
return valuesMean;
}
public int Median(int[] arr)
{
int valuesMedian = (arr.Max()+ arr.Min())/2;
return valuesMedian;
}
}
}
arraymod.cs(29,42):
錯誤CS1061: '的System.Array' 不包含一個定義 '平均' 和沒有擴展方法 '平均數' 接受第一
型「的System.Array」的說法可以找到(是否缺少using指令 或程序集引用?)
你所說的'平均()'方法意思?正如錯誤所說的那樣,沒有一種叫做「Array」的方法。你有沒有嘗試爲'Array'寫一個擴展方法?然後閱讀:https://msdn.microsoft.com/en-us//library/bb383977.aspx –
Linq已經有['Average'](https://msdn.microsoft.com/en-us/library/ vstudio/system.linq.enumerable.average(v = vs.100).aspx)方法與平均值相同。另外,既然你已經計算出了寫入控制檯的最小值和最大值,爲什麼不把它們存儲在變量中,而只是從它們中計算中位數,而不是再次運行'Max'和'Min'? – juharr