我有一个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);