2014-04-03 69 views
0

为什么它不给我平均3?如何从wcf服务中的数组中计算平均值

public double total = 0; 
public double avg = 0; 

public double[] Yahoo = { 1, 2, 3, 4,5 }; 

for (int i = 0; i < Yahoo.Length; i++) 
{ 
    total += Yahoo[i]; 
} 
avg = total/Yahoo.Length; 
+0

它适用于我(假设您实际将代码放置在实际编译的上下文中)。 –

+1

什么问题?你得到什么输出? –

+0

你确定这个数组是正确的吗?我怀疑这个例子和你的真实代码有更大的不同 –

回答

-2

我跑这个控制台应用程序:

class Program 
{ 
    static void Main(string[] args) 
    { 
     double total = 0; 
     double avg = 0; 

     double[] Yahoo = { 1, 2, 3, 4,5 }; 

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

     avg = total/Yahoo.Length; 

     Console.WriteLine(avg); 

     Console.ReadKey(); 
    } 
} 

,我得到了3

但是你可以使用LINQ为您希望:

Yahoo.Average(); 

啊,为了要使用此方法,您必须在源代码文件的顶部设置以下using语句:

using System.Linq; 

注意有一件事似乎很奇怪对我来说,你已经声明的变量

public double total = 0; 
public double avg = 0; 
public double[] Yahoo = { 1, 2, 3, 4,5 }; 

,因为这些应该在方法声明的方式,他们不应该有访问修饰符。这是错误的。

+1

这不回答OP的问题。 –

+0

谢谢yahoo.average()为我工作 – user3486586

+0

@GrantWinney如果这些变量是在方法中声明的,他们是否可以有访问修饰符?如果他们是类变量,那么他们应该有一个访问修饰符。但如果他们没有? – Christos