【发布时间】:2010-10-19 05:02:04
【问题描述】:
假设你有这个:
class LogEntry
{
int ID;
int UserName;
datetime TimeStamp;
string Details;
}
你已经提取了一组这样的数据:
ID Username Timestamp Details
1 foo 1/01/2010 Account created
2 zip 2/02/2010 Account created
3 bar 2/02/2010 Account created
4 sandwich 3/03/2010 Account created
5 bar 5/05/2010 Stole food
6 foo 5/05/2010 Can't find food
7 sandwich 8/08/2010 Donated food
8 sandwich 9/09/2010 Ate more food
9 foo 9/09/2010 Ate food
10 bar 11/11/2010 Can't find food
我想要做的是只为每个用户(即 GroupBy 用户名)选择最后一条记录(即按时间戳降序排序)。我可以理解 Distinct 和 GroupBy,但是将它们组合在一个语句中,该语句还返回非不同/分组字段/属性并按时间戳排序,这让我很头疼。
上面的例子应该是:
ID Username Timestamp Details
2 zip 2/02/2010 Account created
8 sandwich 9/09/2010 Ate more food
9 foo 9/09/2010 Ate food
10 bar 11/11/2010 Can't find food
当我确信可以在单个 LINQ 语句中完成时,我不想“作弊”并采用冗长的方法。
【问题讨论】:
-
您希望最终排序如何?
标签: c# .net vb.net linq distinct