让有球员:
var players = new List<Player> {
new Player { Name = "John", AssessNumber = 1, Score = 90 },
new Player { Name = "John", AssessNumber = 2, Score = 88 },
new Player { Name = "John", AssessNumber = 3, Score = 67 },
new Player { Name = "Steve", AssessNumber = 1, Score = 98 },
new Player { Name = "Steve", AssessNumber = 2, Score = 90 },
};
此代码显示了使用LINQ查询分组表达s yntax:
var playerInfos =
from player in players
group player by player.Name into playerGroup
select new
{
PlayerName = playerGroup.Key,
MaxAssessNumber = playerGroup.Max(x => x.AssessNumber),
AverageScore = playerGroup.Average(x => x.Score),
};
结果playerInfos
是匿名的对象的集合:
{ PlayerName = "John", MaxAssessNumber = 3, AverageScore = 81.66666... }
{ PlayerName = "Steve", MaxAssessNumber = 2, AverageScore = 94.0 }
查看更多信息关于LINQ Average集结方法。
应该可以用直接的'group by'做到。你有什么尝试?你卡在哪里? – Heinzi
提示:http://stackoverflow.com/a/1575413/1004522 –
看起来像'平均得分组'会产生很多单项组 – Plutonix