リンクをグループ化した後、グループ内でどのように並べ替えるか。
LINQでは、グループ化した結果を並べ替えるために、OrderByまたはOrderByDescendingメソッドを使用することができます。
学生リストがある場合、それぞれの学生にはクラス属性があります。今、クラスごとにグループ化し、それぞれのクラス内で学生の名前で並べ替える必要があります。この場合、LINQクエリを以下のように記述できます。
var students = new List<Student>();
// 分组并在组内排序
var groupedStudents = students
.GroupBy(s => s.Class)
.Select(g => new
{
Class = g.Key,
Students = g.OrderBy(s => s.Name) // 在组内按姓名排序
});
// 遍历结果
foreach(var group in groupedStudents)
{
Console.WriteLine("班级:" + group.Class);
foreach(var student in group.Students)
{
Console.WriteLine("姓名:" + student.Name);
}
}
この例では、GroupByメソッドを使用して、生徒リストをクラスごとにグループ化し、OrderByメソッドを使用して各クラス内の生徒を名前でソートします。最後に、Selectメソッドを使用して、クラスとソートされた生徒リストを含む新しい結果オブジェクトを作成します。結果を反復処理すると、各クラス内の生徒が名前でソートされていることがわかります。