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

时间:2021-05-12 09:49:54
数据如下:
id     name  
1      张三   
2      张三    
3      张三    
4      李四    

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

id     name  
3      张三    
4      李四    

6 个解决方案

#1


http://blog.csdn.net/hanjun0612/article/details/70256462
这个方法里,你取出rowid=1的就可以了。

#2


引用 1 楼 hanjun0612 的回复:
http://blog.csdn.net/hanjun0612/article/details/70256462
这个方法里,你取出rowid=1的就可以了。

不好意思,没看懂,rowid该怎么用……?

#3


你试试这个,看看有问题不

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
}

#4


引用 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

#5



引用 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


可用,谢谢~~

#6


引用 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


再请教一下,如果这个表还有若干字段(比如age、address等等),该怎样保留呢?全部group by的话不妥吧?

#1


http://blog.csdn.net/hanjun0612/article/details/70256462
这个方法里,你取出rowid=1的就可以了。

#2


引用 1 楼 hanjun0612 的回复:
http://blog.csdn.net/hanjun0612/article/details/70256462
这个方法里,你取出rowid=1的就可以了。

不好意思,没看懂,rowid该怎么用……?

#3


你试试这个,看看有问题不

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
}

#4


引用 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

#5



引用 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


可用,谢谢~~

#6


引用 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


再请教一下,如果这个表还有若干字段(比如age、address等等),该怎样保留呢?全部group by的话不妥吧?