は、私はこれらの3つのクラスを持っている場合。LINQグループ化と集約
しかし、学生が複数のコースに複数回登録した場合、各コースの最新の登録のみをどのように表示できますか?
私は、コース別にグループ化し、enrolmentDate = Max(enrolmentDate)またはそれに類するものをフィルタリングする必要があると仮定していますか?
(これは見慣れた場合、それは後続の私のprevious LINQ questionからだから、それはです。)
は、私はこれらの3つのクラスを持っている場合。LINQグループ化と集約
しかし、学生が複数のコースに複数回登録した場合、各コースの最新の登録のみをどのように表示できますか?
私は、コース別にグループ化し、enrolmentDate = Max(enrolmentDate)またはそれに類するものをフィルタリングする必要があると仮定していますか?
(これは見慣れた場合、それは後続の私のprevious LINQ questionからだから、それはです。)
Enumerable<Course> FindCoursesForStudent(Student student)
{
return from enrolment in Enrolments
where enrolment.studentId == student.id
&& enrolment.enrolmentDate == (from ed in Enrolments
where ed.enrolmentDate == enrolment.enrolmentDate
select ed.enrolmentDate).Max()
join course in Courses
on enrolment.courseId equals course.id
select course;
}
学生が撮影した各コースの最新の登録を取得するには、私のようなものを使用したいです:
IEnumerable<Enrolment> FindCoursesForStudent(Student student) {
return from enrolment in Enrolments
where enrolment.studentId == student.id
group enrolment by enrolment.courseId into gp
select gp.OrderBy(e => e.enrolmentDate).First();
}
あなたが求めていることはありますか?