1

下面的平均需要的 LINQ 语法是什么。Select 和 SelectMany 都让我失望。我可以 Max() 和 Sum() 我的内部列表,但 Average() 不会编译。

简单列表的 JSON 版本看起来像

[{"Week":6, "Matches":[{"Game":189},{"Game":149},{"Game":132}]} ....

var hiGame = games.Max(g => g.Matches.Max(m => m.Game)); // ok
var hiSeries = games.Max(g => g.Matches.Sum(m => m.Game)); // ok
var ave = games.Average(g => g.Matches.SelectMany(m => m.Game)); // no go

无法从用法中推断方法“System.Linq.Enumerable.SelectMany(System.Collections.Generic.IEnumerable, System.Func>)”的类型参数。尝试明确指定类型参数。

4

1 回答 1

5

我想你想要你SelectMany的在外面:

var ave = games.SelectMany(g => g.Matches) // Flatten to a sequence of matches
               .Average(m => m.Game);      // Average by value of Game
于 2012-10-22T17:51:27.187 回答