linq排序的有关问题,有示例数据,请看
linq排序的问题,有示例数据,请看
姓名 时间 数值
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个步骤写在一起,该如何写
------解决方案--------------------
姓名 时间 数值
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个步骤写在一起,该如何写
------解决方案--------------------
- C# code
var query = list.GroupBy(x => x.姓名) .Select(g => g.OrderByDescending(x => x.时间).First()) .OrderByDescending(x => x.数值);
------解决方案--------------------
把list改成db.Table就可以了。多看看例子+实践才能有更多收获。
------解决方案--------------------
按时间倒序,取第一个。