wa.war Ответов: 1

Как отсортировать страницу по динамическому LINQ orderby?


public dynamic GetRecordsPerPage(IList<FaxHistory> list, int page, int pageSize, string sortBy)
    {
      var sortlist= list.AsQueryable().OrderBy(x => x.xCrDate).ToList(); 
      return sortlist.Skip(page * pageSize).Take(pageSize).ToList();
    }


Imgur: ошибка at .Заказатьпо [^]

Сортировка должна быть по "sortBy", а не по
x => x.xCrDate

Как можно справиться с этой проблемой?

Что я уже пробовал:

public dynamic GetRecordsPerPage(IList<FaxHistory> list, int page, int pageSize, string sortBy)
    {
        var sortlist= list.AsQueryable().OrderBy(x => x.xCrDate).ToList(); 
        //var sortlist= list.AsQueryable().OrderBy(sortBy).ToList();
        return sortlist.Skip(page * pageSize).Take(pageSize).ToList();
    }

Maciej Los

Как это происходит sortBy как выглядит переменная?

1 Ответов

Рейтинг:
2

Karthik_Mahalingam

пробовать

public dynamic GetRecordsPerPage(IList<FaxHistory> list, int page, int pageSize, string sortBy)
   {

       var prop = typeof(FaxHistory).GetProperty(sortBy);
       var sortlist = list.AsQueryable().OrderBy(x => prop.GetValue(x, null));
       return sortlist.Skip(page * pageSize).Take(pageSize).ToList();


   }
// or 
   public dynamic GetRecordsPerPage<T>(IList<FaxHistory> list, int page, int pageSize, Func<FaxHistory,T> sortBy)
   {
       var sortlist = list.AsQueryable().OrderBy(sortBy).ToList();
       return sortlist.Skip(page * pageSize).Take(pageSize).ToList();
   }