首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

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

2012-10-16 
linq排序的问题,有示例数据,请看姓名   时间   数值tom12:008.00tom12:058.50tom12:108.20jak12:008.10jak

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个步骤写在一起,该如何写

[解决办法]

C# code
var query = list.GroupBy(x => x.姓名)                .Select(g => g.OrderByDescending(x => x.时间).First())                .OrderByDescending(x => x.数值);
[解决办法]
把list改成db.Table就可以了。多看看例子+实践才能有更多收获。
[解决办法]
按时间倒序,取第一个。

热点排行