当前有一张数据表{Student},包含了如下的字段信息:
CREATE TABLE [dbo].[Student](
[Sno] [nchar](7) NOT NULL,
[Sname] [nchar](10) NOT NULL,
[Sex] [nchar](2) NULL,
[Sage] [tinyint] NULL,
[Sdept] [nchar](20) NULL,
[Sdate] datetime NULL,
) ON [PRIMARY]
我们需要获得学生的完整信息
方案一
var q = from n in Student
group n by new {n.Sno,n.Sname} into g
select g.OrderByDescending(t=>t.Sdate).FirstOrDefault();
方案二
var q = from n in Student
group n by new {n.Sno,n.Sname} into g
select g;
再进行循环
List<StudentListDto> list = new List<StudentListDto>();
foreach (var item in query)
{
var itList = item.OrderByDescending(x => x.Sdate).FirstOrDefault();
list.Add(ObjectMapper.Map<StudentListDto>(itList));
}
最后进行其他事情
LINQ分组排序后获取每组第一条记录
最新推荐文章于 2022-08-04 17:31:35 发布