[英]what is the best way to get an ordered list from a complex object where the list elements are from a second generation child collection
我是MVC的新手,我正在嘗試顯示第二代集合的有序列表。 而不是將問題與我的特定數據集混淆; 請告訴你如何從ConsotoUniversity的例子中做到以下幾點。 教師有一系列課程。 課程有一系列的學生
我如何為每位老師列出姓氏的所有學生。 假設viewModel有Instructor.Courses.Students,我知道在視圖中我可以做到
@foreach (var instructor in @Model.Instructors)
{
<h2>@instructor.FullName</h2>
foreach(var course in instructor.Courses)
{
foreach(var student in course.Students.OrderBy(s=>s.LastName))
{
<p>@student.LastName, @student.FirstName</p>
}
}
}
但這只會按順序打印名稱,所以如果我有兩門課程:與學生一起編碼和數學:Coding = John Jones和Tim Green,Maths = Adam Smith和Aaron Aardvark我會得到一個如下列表:
但我想要的是:
在我的特定用例中,不會有重復的學生。
您可以使用SelectMany()
將子列表聚合到單個列表中,然后對其進行排序。 像這樣的東西:
foreach (var student in instructor.Courses.SelectMany(c => c.Students).OrderBy(s => s.LastName))
{
<p>@student.LastName, @student.FirstName</p>
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.