Si j'ai ces 3 classes:LINQ - regroupement et l'agrégation
class Student { int id; string name; }
class Course { int id; string name; }
class Enrolment { int studentId; int courseId; DateTime enrolmentDate; }
Ensuite, en utilisant ceci:
IEnumerable<Course> FindCoursesForStudent(Student student)
{
return from enrolment in Enrolments
where enrolment.studentId == student.id
join course in Courses
on enrolment.courseId equals course.id
select course;
}
Je peux énumérer tous les cours d'un étudiant est inscrit sur.
Mais si un étudiant s'est inscrit à un cours plusieurs fois, comment afficherais-je seulement l'inscription la plus récente pour chaque cours?
Je suppose que je dois regrouper par cours et filtrer où enrolmentDate = Max (enrolmentDate) ou quelque chose de similaire?
(Si cela semble familier, il est parce qu'il est un suivi sur de mon previous LINQ question.)