1

以下の Average ニーズの 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 に答える