linq 动态排序
2024-10-14 04:59:50
/// <summary>
/// 排序
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="source"></param>
/// <param name="sortExpression"></param>
/// <param name="sortDirection"></param>
/// <returns></returns>
public static IQueryable<T> DataSorting<T>(IQueryable<T> source, string sortExpression, string sortDirection)
{
string sortingDir = string.Empty;
if (sortDirection.ToUpper().Trim() == "ASC")
sortingDir = "OrderBy";
else if (sortDirection.ToUpper().Trim() == "DESC")
sortingDir = "OrderByDescending";
ParameterExpression param = Expression.Parameter(typeof(T), sortExpression);
PropertyInfo pi = typeof(T).GetProperty(sortExpression);
Type[] types = new Type[];
types[] = typeof(T);
types[] = pi.PropertyType;
Expression expr = Expression.Call(typeof(Queryable), sortingDir, types, source.Expression, Expression.Lambda(Expression.Property(param, sortExpression), param));
IQueryable<T> query = source.AsQueryable().Provider.CreateQuery<T>(expr);
return query;
}
最新文章
- Lambda 表达式递归用法实例
- (转)UIWebView全部API学习
- (转)Java并发编程:volatile关键字解析
- shell ulimit -n
- (转载)word-wrap,word-break,white-space,text-overflow的区别和用法
- Oracle的substr函数简单用法
- 组策略彻底解决windows 2003 终端数
- 【用PS3手柄在安卓设备上玩游戏系列】谈安卓游戏对手柄的支持
- Linux 软链接和硬链接的理解与学习
- 【百度地图API】建立全国银行位置查询系统(一)——如何创建地图
- linux shadowsocket 安装和启动
- fiddler 一些不为人知的功能
- DiscuzX2.5,X3.0,X3.1,X3.2完整目录结构【模板目录template】
- HYSBZ1036-树链剖分-点权
- python第三十五天-----作业完成--学校选课系统
- static extern
- Spring Batch 基本的批处理指导原则
- VSS源代码管理器运行代码分析工具的命令
- 启动tomcat的时候爆出如下错误
- JavaScript Array 对象方法