使用Linq动态属性排序

使用反射:

public static Func<T,Tkey> DynamicLambda<T, Tkey>(string propertyName)
        {
            ParameterExpression p = Expression.Parameter(typeof(T), "p");
            Expression body = Expression.Property(p, typeof(T).GetProperty(propertyName));
            var lambda = Expression.Lambda<Func<T, Tkey>>(body, p);
            return lambda.Compile();
        }

调用:

List<Employee> list = new List<Employee>();
            list.Add(new Employee() { Name = "张三", Age = 21, Salary = 1800f, Job = "UI" });
            list.Add(new Employee() { Name = "李四", Age = 25, Salary = 2000f, Job = "DBA" });
            list.Add(new Employee() { Name = "王五", Age = 24, Salary = 2000f, Job = "UI" });
            list.Add(new Employee() { Name = "李九", Age = 31, Salary = 2900f, Job = "DBA" });
            list.Add(new Employee() { Name = "张一", Age = 21, Salary = 2100f, Job = "UI" });
            list.Add(new Employee() { Name = "王三", Age = 32, Salary = 2100f, Job = "DBA" });
             //按Age排序
            list.OrderBy(DynamicLambda<Employee,int>("Age"));
            //按Salary排序
            // list.OrderBy(DynamicLambda<Employee,float>("Salary"));
            list.ForEach(e => Console.WriteLine(e.Name + "\t" + e.Age + "\t" + e.Salary));

LINQ中的动态排序相关推荐

  1. NHibernate Linq中Null值排序的解决方法

    在Nhibernate Linq的查询中如何实现Order by Nulls Last 和Order by Null First的功能呢? 方法如下: OrderByDescending(x => ...

  2. linq查询不包含某个值的记录_【翻译】C#表达式中的动态查询

    当您使用LINQ来处理数据库时,这种体验是一种神奇的体验,对吗?你把数据库实体像一个普通的收集,使用Linq中像Where,Select或者 Take,这些简单的使用就能让代码可用了. 但是,让我们考 ...

  3. 【翻译】C#表达式中的动态查询

    当您使用LINQ来处理数据库时,这种体验是一种神奇的体验,对吗?你把数据库实体像一个普通的收集,使用Linq中像Where,Select或者 Take,这些简单的使用就能让代码可用了. 但是,让我们考 ...

  4. 使用该JavaBean可以将数据在JSP页面中以表格的形式显示出来 并具有动态排序 动态生成查询 自动分页功能

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 使用该类 ...

  5. [.NET] 《Effective C#》快速笔记 - C# 中的动态编程

    <Effective C#>快速笔记 - C# 中的动态编程 静态类型和动态类型各有所长,静态类型能够让编译器帮你找出更多的错误,因为编译器能够在编译时进行大部分的检查工作.C# 是一种静 ...

  6. 动态排序JavaBean

    Java中如果对对象排序可以考虑实现Comparable接口,但是需要排序的属性一旦指定就不能再修改.BeanUtils组件提供了对JavaBean动态排序的支持,即可以在运行时指定排序的属性.实例运 ...

  7. XML动态排序(1)

    <?xml version="1.0" encoding="gb2312" ?> <?xml-stylesheet type="te ...

  8. 时间约束的实体解析中记录对排序研究

    时间约束的实体解析中记录对排序研究 人工智能技术与咨询 来源:<软件学报> ,作者孙琛琛等 摘 要:实体解析是数据集成和数据清洗的重要组成部分,也是大数据分析与挖掘的必要预处理步骤.传统的 ...

  9. LINQ中的Lambda表达式

    Lambda Expressions in LINQ 在第12章,我提到可以用lambda表达式定义内联的委托定义.在如下表达式中: customer => customer.FirstName ...

最新文章

  1. 11月最热论文Top10、五大学科最热论文Top3!
  2. Java B2B2C o2o多用户商城 springcloud架-企业云架构common-service代码结构分析
  3. php 取多级分类,php – 获取所有类别(多级)
  4. 200919阶段一C++STL容器
  5. SVN常用命令及在windows上安装SVN
  6. SharePoint2010开发最佳实践
  7. editplus怎么在前后插入字符
  8. golang range循环内部
  9. keras ImageDataGenerator数据增强
  10. cocos2d-x-3.0 window+eclipse Android Project 环境与开发新手教程
  11. 【原创】基于FPGA的SDRAM控制器设计—自动刷新设计
  12. push_back()函数的用法
  13. 那让人生生死死的「生态位」
  14. 如何一下清空微信好友_微信清理好友方法|微信如何正确清理已删除你的微信好友 微信清理好友方法介绍_东坡下载...
  15. 校验非空的注解@NotNull怎么取得自定义的message
  16. Django—CRM项目练习
  17. Creo 工程图 尺寸 消失
  18. 那些年奋斗的日子,岁月静好
  19. DBCC CHECKDB用法 手工修复数据库
  20. 基于C#+Mysql实现(WinForm)企业的设备管理系统【100010018】

热门文章

  1. C语言二叉树的逆向有序遍历(附完整源码)
  2. C++位操作确定一个数是否为2的幂的算法实现(附完整源码)
  3. C++平衡二叉树(AVL树)
  4. QT的QGeoRoutingManager类的使用
  5. 封属于旋转轴密封件吗_氧化铝95瓷属于普通型的一种吗?
  6. 1.Prometheus快速入门,Prometheus+node_exporter安装
  7. Spark-SQL从MySQL中加载数据以及将数据写入到mysql中(Spark Shell方式,Spark SQL程序)
  8. Spark查找某个IP的归属地,二分算法,try{}catch{}的使用,将结果存MySQL数据库
  9. 4.有关日期格式属性修改常识,v$nls_parameters,between and,查询指定部门的员工信息,in和null,like模糊查询,order by后面可以跟:列名、表达式、别名、序号
  10. python中面向对象的缺点_最简单的方法搞懂Python面向对象