LINQ查询问题

时间:2011-09-03 13:29:08

标签: c# linq

我有一个包含以下信息的列表

日期,姓名和一些统计数据

名称可以重复,但不一定。

所以例如我可以

5,今天,“约翰” 4,今天,“金” 3,今天,“彼得”
2,昨天,“金” 1,昨天,“蒂姆”

我想要一个查询来检索每个用户的最新记录。在我的例子中,这将是记录5,4和1。

我是否必须将每条记录与整个数据库相匹配才能找到?
实现这一目标的最佳表现是什么?

2 个答案:

答案 0 :(得分:3)

也许这样的事情可以奏效?

var linq = people.GroupBy(a => a.Name).Select(a => a.OrderBy(a => a.Date).Last());

更长的版本:

var linq = from person in people
           group person by person.Name into grouped
           select grouped.OrderBy(a => a.Date).Last();

答案 1 :(得分:0)

这就是我的想法:

from u in context.Users
group u by u.UserID into grouped
select grouped.OrderByDescending(g => g.Date).First()