我有以下簡單的數據結構。學生名單,每個學生都有一個唯一的ID。每個學生都有他們參加的課程列表。課程也有唯一的ID,但是將會是多個studentCourses列表的成員(因爲每個課程都由多個學生註冊)。使用LINQ獲取內部列表的值
我試圖通過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();
只是另一種方式。 'int studentGrade = students.FirstOrDefault(s => s.studentId == 1).studentCourses.FirstOrDefault(c => c.courseId == 1).grade;' – 2012-08-15 10:09:58