Asp.net MVC - lambda表示排序顺序-可以使用变量吗?



我有一个c# MVC项目。我想在客户端应用程序控制器方法建立语句从web获取JSON。Api,用于在视图模板中分页/排序。排序顺序可以作为变量传递给此代码吗?

var container = new CourseService.Container(uri);
var query = container.Courses.OrderByDescending(c => c.Name).Skip(skip).Take(take).ToList();

为什么不添加自己的IEnumerable扩展来做到这一点呢?

public enum SortOrder
{
    Ascending,
    Descending
}
public static class EnumerableExtensions
{
    public static IEnumerable<T> OrderBy<T, TKey>(this IEnumerable<T> input,
        Func<T, TKey> keySelector, SortOrder order)
    {
        switch(order)
        {
            case SortOrder.Descending:
                return input.OrderByDescending(keySelector);
            default:
                return input.OrderBy(keySelector);
        }
    }
}

:

var output = container.Courses.OrderBy(c => c.Name, SortOrder.Descending);

最新更新