我是 MVC 的新手,我正在尝试显示第二代集合的有序列表。而不是将问题与我的特定数据集混淆;请您建议如何从 ConsotoUniversity 示例中执行以下操作。 教师有一系列类(class)。 类(class)有一组学生
我将如何按姓氏列出每位教师的所有学生。假设 viewModel 有 Instructor.Courses.Students 我知道在 View 中我可以做
@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>
}
}
}
但这只会按类(class)顺序打印姓名,所以如果我有两门类(class):编码和数学与学生:编码 = John Jones & Tim Green,数学 = 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>
}
