【发布时间】:2020-03-18 11:23:53
【问题描述】:
我想要-
- 在每个组中按升序对学生进行排序(例如:第 1 组中的 Jack、John 和 Peter 等)
- 按第一项升序排列所有已排序的组(例如:第 3、2 和 1 组)
收藏
public class StudentInfo
{
public string Student { get; set; }
public string University { get; set; }
public int GroupID { get; set; }
public bool IsQualified {get; set;}
}
List<StudentInfo> studentsList = new List<StudentInfo>();
StudentsList.Add( new StudentInfo { Student="John", University="ABC", GroupID = 1, IsQualified=False});
StudentsList.Add( new StudentInfo { Student="Jack", University="DEF", GroupID = 1, IsQualified=False} );
StudentsList.Add( new StudentInfo { Student="Peter", University="GHI", GroupID = 1, IsQualified=False} );
StudentsList.Add( new StudentInfo { Student="Olivia", University="ABC", GroupID = 2, IsQualified=False} );
StudentsList.Add( new StudentInfo { Student="Donald", University="JKL", GroupID = 2, IsQualified=False} );
StudentsList.Add( new StudentInfo { Student="Adam", University="GHI", GroupID = 3, IsQualified=False} );
StudentsList.Add( new StudentInfo { Student="Jacob", University="ABC", GroupID = 3, IsQualified=False} );
预期输出
Group 3:
Adam
Jacob
Group 2:
Donald
Olivia
Group 1:
Jack
John
Peter
伪代码
var results = studentsList
.GroupBy(x => x.GroupID)
.SelectMany(g => g.OrderBy(x => x.Student)).ToList();
我不知道除此之外还能写什么。请帮帮我。
【问题讨论】:
-
是否还要对每个组内的学生姓名进行排序?