在剃刀多个foreach循环

本文关键字:foreach 循环 剃刀 | 更新日期: 2023-09-27 18:06:08

我想使用foreach遍历一个集合,但是我想要每个对象的属性来确定它在迭代中出现的位置。为了从根本上实现这一点,我使用了2个foreach循环来首先获取主列表,然后获取二级列表。取值为DEPtxt,包含该值的属性为Course_DepartmentsCourse_Departments2

@foreach (ContentNode node in pgnodes.Where(x => x.Data.Course_Departments.ToString() == DEPtxt)){
                <li class="sys_subitem" style="display: list-item;"><a title="@node.Title" href="@node.Path">@node.Title</a></li>  
            }
            @foreach (ContentNode node in pgnodes.Where(x => x.Data.Course_Departments2.ToString() == DEPtxt)){
                <li class="sys_subitem" style="display: list-item;"><a title="@node.Title" href="@node.Path">@node.Title</a></li>  
            }

在上下文中,Linq查询抓取了所有在对象的两个属性之一中具有字符串值的对象。我希望foreach循环首先显示在Course_Departments中包含它的所有对象,然后显示在Course_Departments2之后。

多个foreach循环是最好的方法吗?

我必须在查询时排序吗?我是否需要创建一个列表来对其进行排序?我希望尽可能少地访问数据存储,让razor引擎完成大部分工作。

谢谢!

在剃刀多个foreach循环

如果您试图从一个集合中获得一个排序的项目列表来显示,您应该始终在视图之外进行项目排序和操作,如果可能的话。