无法从方法组转换为对象 - C#

时间:2012-10-29 04:50:46

标签: c#

我正在尝试熟悉C#并尝试了以下程序 - 它只输出数组中偶数的平均值。

Code Snippet Errors

如果有人能在这里强调问题,那会很棒。

6 个答案:

答案 0 :(得分:12)

你需要select.Average()(与parens一起)。

答案 1 :(得分:4)

缺失的括号()是您输入错误的原因。它应该是Average()

没有括号,它被理解为一个方法组。平均方法可能有多个重载,不清楚需要调用哪个特定的重载方法。但是当你提到括号时,它使意图更清晰,方法得到调用。

答案 2 :(得分:1)

您没有致电Average。应为select.Average()

答案 3 :(得分:1)

问题在于,您忘记包含括号,因为Average是一种方法(扩展类型)。另一个解决方案是使用lambda表达式,类似这样,

var numbers = new[] { 1, 2, 3, 4, 5 };
Console.WriteLine(numbers.Where(x => (x % 2) == 0).Average());

var numbers = new[] { 1, 2, 3, 4, 5 };
var select = (from num in numbers where (num % 2) == 0 select num).Average();
Console.WriteLine(select);

答案 4 :(得分:1)

这是一个扩展程序 Method 所以它应该是这样的:Average()

with(Parenthesis())

答案 5 :(得分:0)

这是我的一个粗心的错误,我试图像属性一样调用Method而不是像方法那样调用Method()