我有一个简单的数据结构,一个学生列表,每个学生都有唯一的ID。每个学生都有一个所注册课程的列表。课程也具有唯一的ID,但将成为多个studentCourses列表的成员(因为多个学生都注册了该课程)。
我尝试通过学生ID和课程ID找到特定的成绩值。 我使用下面的linq查询语句。 我对我的linq还有点不确定,想知道我编写的查询是否正确? 它确实可以正常工作,但是否能更优雅/易读?
我尝试通过学生ID和课程ID找到特定的成绩值。 我使用下面的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();
int studentGrade = students.FirstOrDefault(s => s.studentId == 1).studentCourses.FirstOrDefault(c => c.courseId==1).grade;
- L.B