我目前正在过滤包含与这些课程相关的课程和项目的页面。我想订购那些获得最多投票资金的项目 - 属性vote_amount。我无法弄清楚如何通过控制器处理这个问题,我可以在视图中轻松完成,但是我收到错误。
我在循环内部有一个循环,它到目前为止工作得很好,但我需要订购。
foreach (var item in ViewBag.Courses)
{
<h2> item.CourseName <h2>
foreach (var project in item.Projects.OrderBy(project => project.vote_amount)
{
<h2> project.Name <h2>
}
}
似乎很容易然后我收到以下错误。 在没有先将其转换为委托或表达式树类型的情况下,不能将lambda表达式用作动态调度操作的参数
我知道在使用linq表达式时我应该将这些内容保留在控制器中但是,我无法通过我希望在另一个循环中的项目数组获得所需的顺序。 任何建议将不胜感激。
答案 0 :(得分:1)
你试过在foreach循环之前订购吗?
foreach (var item in ViewBag.Courses)
{
<h2> item.CourseName <h2>
item.Projects = item.Projects.OrderBy(project => project.vote_amount).toList();
foreach (var project in item.Projects)
{
<h2> project.Name <h2>
}
}