私は次のような単純なデータ構造を持っています。それぞれが一意のIDを持つ学生のリスト。各学生には、登録されているコースのリストがあります。コースにも一意のIDがありますが、複数のstudentCoursesリストのメンバーになります(各コースは複数の学生によって登録されているため)。
私はstudentIdとcourseIdによって特定のグレード値を見つけようとしています。以下のlinqクエリを使用しています。私はまだ私のlinqに少し不安があり、私が書いたクエリが正しいかどうか疑問に思っていましたか?正しく動作しますが、よりエレガントで読みやすいように変更できますか?
class Student {
int studentId;
string studentName;
List<Course> studentCourses;
}
class Course {
int courseId;
string courseName;
int grade;
}
List<Student> students = new List<Student>();
//populate list.
int studentGrade = students
.Where(c => c.studentId == 1)
.Select(c => c.studentCourses.FirstOrDefault(a => a.courseId == 1).grade)
.FirstOrDefault();