请教如何使用lambda分组后排序?

一本正经道 2017-09-06 05:22:26
数据如下:
id name
1 张三
2 张三
3 张三
4 李四

如果有name相同,那么只取id最大那个。该如何写?
即结果如下:

id name
3 张三
4 李四
...全文
2998 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
一本正经道 2017-09-07
  • 打赏
  • 举报
回复
引用 4 楼 qq_31606375 的回复:
[quote=引用 3 楼 qq_31606375 的回复:] 你试试这个,看看有问题不

from d in data
group d by d.Name into g
select new 
{
    Id = g.Max(g => g.Id),
    Name = g.Where(g => g.Id == Id).Name
}
犯了个小错误,把最后改成Name = g.Key[/quote] 再请教一下,如果这个表还有若干字段(比如age、address等等),该怎样保留呢?全部group by的话不妥吧?
一本正经道 2017-09-07
  • 打赏
  • 举报
回复
引用 4 楼 qq_31606375 的回复:
[quote=引用 3 楼 qq_31606375 的回复:] 你试试这个,看看有问题不

from d in data
group d by d.Name into g
select new 
{
    Id = g.Max(g => g.Id),
    Name = g.Where(g => g.Id == Id).Name
}
犯了个小错误,把最后改成Name = g.Key[/quote] 可用,谢谢~~
xiaoxiaotank 2017-09-06
  • 打赏
  • 举报
回复
引用 3 楼 qq_31606375 的回复:
你试试这个,看看有问题不

from d in data
group d by d.Name into g
select new 
{
    Id = g.Max(g => g.Id),
    Name = g.Where(g => g.Id == Id).Name
}
犯了个小错误,把最后改成Name = g.Key
xiaoxiaotank 2017-09-06
  • 打赏
  • 举报
回复
你试试这个,看看有问题不

from d in data
group d by d.Name into g
select new 
{
    Id = g.Max(g => g.Id),
    Name = g.Where(g => g.Id == Id).Name
}
一本正经道 2017-09-06
  • 打赏
  • 举报
回复
引用 1 楼 hanjun0612 的回复:
http://blog.csdn.net/hanjun0612/article/details/70256462 这个方法里,你取出rowid=1的就可以了。
不好意思,没看懂,rowid该怎么用……?
正怒月神 2017-09-06
  • 打赏
  • 举报
回复
http://blog.csdn.net/hanjun0612/article/details/70256462 这个方法里,你取出rowid=1的就可以了。

8,497

社区成员

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

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