linq排序的问题,有示例数据,请看

shbaby008 2012-10-13 05:25:01
姓名   时间   数值
tom 12:00 8.00
tom 12:05 8.50
tom 12:10 8.20

jak 12:00 8.10
jak 12:15 8.30


排序要求:

1. 按姓名,取每个姓名的离现在时间最近的记录 ,结果如下
tom 12:10 8.20
jak 12:15 8.30

2. 再将上面的记录按数值大小 从高到低排序 ,结果如下
jak 12:15 8.30
tom 12:10 8.20


用linq ,将上面2个步骤写在一起,该如何写
...全文
133 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
Jia_H 2012-10-13
  • 打赏
  • 举报
回复
按时间倒序,取第一个。
shbaby008 2012-10-13
  • 打赏
  • 举报
回复
Select(g => g.OrderByDescending(x => x.时间).First())
//这行的意思应怎么理解,请指点一下,谢谢
Jia_H 2012-10-13
  • 打赏
  • 举报
回复
把list改成db.Table就可以了。多看看例子+实践才能有更多收获。
shbaby008 2012-10-13
  • 打赏
  • 举报
回复
没有会了吗
shbaby008 2012-10-13
  • 打赏
  • 举报
回复
原始数据是在DataTable,不是在list中,该怎么写呀
种草德鲁伊 2012-10-13
  • 打赏
  • 举报
回复


var query = list.GroupBy(x => x.姓名)
.Select(g => g.OrderByDescending(x => x.时间).First())
.OrderByDescending(x => x.数值);

8,497

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 LINQ
社区管理员
  • LINQ
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧