我有以下简单的数据结构。学生列表,每个学生都有一个唯一的 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();