10

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

代码片段错误

如果有人可以在这里突出问题,那就太好了。

4

6 回答 6

19

你需要select.Average()(带括号)。

于 2012-10-29T04:53:01.497 回答
5

缺少括号()是您错误的原因。应该是Average()

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

于 2012-10-29T04:54:02.440 回答
1

你没有打电话Average。应该select.Average()

于 2012-10-29T04:53:56.650 回答
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);
于 2012-10-29T04:54:52.697 回答
1

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

与(括号())

于 2012-10-29T04:55:14.187 回答
0

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

于 2020-09-30T22:12:57.040 回答