Tôi có một đối tượng mà trông giống như sau:Đặt hàng LINQ theo, nhóm và sắp xếp theo từng nhóm?
public class Student
{
public string Name { get; set; }
public int Grade { get; set; }
}
Tôi muốn tạo ra các truy vấn sau đây: lớp nhóm theo tên sinh viên, ra lệnh cho từng nhóm sinh viên của lớp, và các nhóm tự do lớp tối đa trong mỗi nhóm .
Vì vậy, nó sẽ giống như thế này:
A 100
A 80
B 80
B 50
B 40
C 70
C 30
tôi tạo ra các truy vấn sau đây:
StudentsGrades.GroupBy(student => student.Name)
.OrderBy(studentGradesGroup => studentGradesGroup.Max(student => student.Grade));
Nhưng đó trả về IEnumerable
IGrouping
, và tôi không có cách nào để sắp xếp danh sách bên trong, trừ khi tôi làm điều đó trong một truy vấn foreach
khác và thêm kết quả vào danh sách khác bằng cách sử dụng AddRange
.
Có cách nào đẹp hơn để làm điều đó không?
Không có thuộc tính Key trên rằng biến var nhóm. –
@David B: Rất tiếc, đã được sửa. –
Cảm ơn bạn! Đây là truy vấn đã hoàn thành - studentGrades.GroupBy (student => student.Name) .Chọn (group => new {Students = group.OrderByDescending (x => x.Grade)}) .OrderByDescending (group => group. Students.First(). Lớp) .SelectMany (group => group.Students) – Rita