【发布时间】:2012-01-03 14:12:59
【问题描述】:
我有一张名为“HighScore”的在线高分表。此表包含以下列:
Id,int(自动值) 名称,字符串(玩家姓名) Guid,字符串(玩家 ID) 分数,int(分数) Coins, int (玩家的硬币) 创建,datetime(创建日期)
我需要的是前 50 个分数,但按 Guid 分组。我发现了一个几乎可以工作的 LINQ 表达式。 How do I get the MAX row with a GROUP BY in LINQ query?
最后我需要一个我的 HighScore 对象的列表。通过上面的表达式,我得到了一个匿名列表。
编辑: 实际上我的表的名称是“CatGameScore”,但我在这篇文章中更改了它。
表格内容(仅说明了指南和日期)
Id Name Guid Score Coins Created
1 Hugo 123-123 150 10 <date>
2 Peter 456-456 600 19 <date>
3 Hugo 123-123 550 26 <date>
我的输出应该是这样的:
Id Name Guid Score Coins Created
2 Peter 456-456 600 19 <date>
3 Hugo 123-123 550 26 <date>
输出必须是一个列表。我可以获得每人前 50 名的分数,但我无法创建我的分数对象列表。
感谢任何提示。
安迪
【问题讨论】:
-
您能否用(比如说)4 行、重复 1 个 guid 和(比如说)2 个其他 guid 来说明,这样我们就可以准确地看到您想要的输出?
-
如果每个玩家有多个分数,为什么表格称为
HighScore。也许该表应该简单地称为Score。