zoukankan      html  css  js  c++  java
  • LINQ中的动态排序

    使用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));
  • 相关阅读:
    SqlServer 查看数据库中所有存储过程
    SqlServer 查看数据库中所有视图
    SqlServer 查询表的详细信息
    SqlServer 遍历修改字段长度
    net core 操作Redis
    Tuning SharePoint Workflow Engine
    Open With Explorer
    Download language packs for SharePoint 2013
    Change Maximum Size For SharePoint List Template when Saving
    Six ways to store settings in SharePoint
  • 原文地址:https://www.cnblogs.com/Qbit/p/1765694.html
Copyright © 2011-2022 走看看