LINQ如何平均内部列表

Pab*_*blo 1 linq

下面的平均需求的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
Run Code Online (Sandbox Code Playgroud)

用于方法"System.Linq.Enumerable.SelectMany(System.Collections.Generic.IEnumerable,System.Func>)"类型参数不能从使用推断.尝试显式指定类型参数.

Jon*_*eet 5

我想你想要你SelectMany在外面:

var ave = games.SelectMany(g => g.Matches) // Flatten to a sequence of matches
               .Average(m => m.Game);      // Average by value of Game
Run Code Online (Sandbox Code Playgroud)