最近有个项目需要做一个排班的功能,需要对排班的数据按不同的规则进行排序;因为排序规则是动态变化的,所以不太适合放到数据库中(临时表)中处理;
所以考虑使用Linq的排序方式(按不同的条件判断条件组合排序方式)
 
常用的排序方式是

 list.OrderBy(...).ThenBy(...);
 
最初在网上找资料,写得比较麻烦,都是按集合中对象的属性进行排序,需要另写一些处理方法或类
 
经测试,其实可以这样
 
List<UserInfo> users = GetUsers();
// 创建一个IQueryable 对象
var q = users.AsQueryable<UserInfo>();
// 先按年龄排序
q = q.OrderBy(user=> user.Age);
// 按城市
// q = q.OrderBy(user=> user.Age); // 此时不会出现ThenBy方法的,所以需要改为
q = ((IOrderedQueryable<UserInfo>)q).ThenBy(o => o.City); List<UserInfo> order_users = q.ToList(); // 此时就得到了按年龄以及城市排好序的列表了
 
 

Linq 动态组合排序(Lambda)的更多相关文章

  1. Linq 动态查询排序

    Linq的排序一般是这样写的: query.OrderBy(x => x.Tel).Skip().Take(); 实际使用中排序字段可能是通过字符类型的参数来设置的,于是想这样实现: query ...

  2. linq 动态组合条件

    http://www.albahari.com/nutshell/predicatebuilder.aspx Dynamically Composing Expression Predicates S ...

  3. Entity Framework Linq 动态组合where条件

    public static class PredicateExtensions { public static Expression<Func<T, bool>> True&l ...

  4. linq动态分页排序

    if (!string.IsNullOrEmpty(order) && !string.IsNullOrEmpty(dir))//判断排序的字段名称和排序的类型是否为空 { if (d ...

  5. Linq动态查询与模糊查询 ---转

    Linq动态查询与模糊查询(带源码示例) 继LINQ动态组合查询PredicateExtensions讲解 ----- 在用上面的方法时遇到了些问题 解决 LINQ to Entities 不支持 L ...

  6. EntityFramework动态组合多排序字段

    前言:在使用EF当中,肯定会遇到动态查询的需求,建立一个公共调用的动态组合表达式查询也是必不可少的,以下是建立动态组合多排序字段做个记录,供以后调用 1.建立一个结构,用于多个排序字段组合,这个结构体 ...

  7. 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(17)-LinQ动态排序

    原文:构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(17)-LinQ动态排序 首先修复程序中的一个BUG这个BUG在GridPager类中,把sord修改为s ...

  8. LinQ动态排序

    LinQ动态排序 首先修复程序中的一个BUG这个BUG在GridPager类中,把sord修改为sort这个名称填写错误,会导致后台一直无法获取datagrid的排序字段 本来是没有这一讲的,为了使2 ...

  9. 动态组合lambda 表达式

    //记录实体集合—动态组合lambda 表达式 Expression<Func<AdEntity, bool>> thirdWhere = p => p.Observer ...

随机推荐

  1. 3173. 【GDOI2103模拟3.17】扫雷游戏(搜索 + 剪枝)

    Problem 给出一个类似扫雷的游戏,有\(num\)个数字,求至少有多少个雷. Data constraint \(n,m\le 15,num\le 15\) Solution 好搜索啊. 现讲一 ...

  2. apache http跳转到https代码

    <VirtualHost *:> ServerAdmin webmasterexample.com DocumentRoot "/mnt/www/" ServerNam ...

  3. Mybatis-generator自动生成器

    目录 前言牢骚 Mybatis-generator是什么? Mybatis-generator怎么使用? 第一步,Maven文件引用 第二步,数据库建立 第三步,写mybatis-generator. ...

  4. JavaScript 基本类型和引用类型

    前言 ECMAScript变量可能包含两种不同数据类型的值:基本类型值和引用类型值.基本类型值指的是简单的数据段,而引用类型值指那些可能由多个值构成的对象. 基本类型 Undefined.Null.B ...

  5. SpringBoot系列: Pebble模板引擎

    ===============================Java 模板引擎选择===============================SpringBoot Starter项目向导中可选的J ...

  6. phpcms V9首页、列表页以及内容页调用标签

    1.页面标题:{$title} 2.发表时间:{$inputtime} 3.内容来源:{$copyfrom} 4.文章内容:{$content} 5.缩略图地址:{$thumb} 6.组图列表: {l ...

  7. FTP主动及被动模式效果图

  8. Python3:判断三角形的类型

    # 判断三角形类型def triangle(a,b,c): if a>0 and b>0 and c>0: if a+b>c and b+c>a and a+c>b ...

  9. laravel5.4 向闭合函数内部传递参数

    laravel  向闭合函数内部传入参数

  10. ASP.NET Web API系列教程(目录)(转)

    注:微软随ASP.NET MVC 4一起还发布了一个框架,叫做ASP.NET Web API.这是一个用来在.NET平台上建立HTTP服务的Web API框架,是微软的又一项令人振奋的技术.目前,国内 ...