LINQ分组排序后获取每组第一条记录

当前有一张数据表{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));
            }
最后进行其他事情
原文地址:https://www.cnblogs.com/moonstars/p/13844588.html