如何按动态LINQ orderby排序页面? [英] How to sort page by dynamic LINQ orderby?

查看:177
本文介绍了如何按动态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();
    }



图像:.OrderBy发生错误 [ ^ ]

排序应按"sortBy"进行,而不应按



Imgur: Error at .OrderBy [^]

The sorting should be by "sortBy", not by

x => x.xCrDate


.如何解决这个问题?

我尝试过的事情:


. How can manage this problem?

What I have tried:

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();
    }

推荐答案

try

try

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();
   }


这篇关于如何按动态LINQ orderby排序页面?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆