public static Expression<Func<T, bool>> True<T>() { return f => true; }

public static Expression<Func<T, bool>> False<T>() { return f => false; }

/// <summary>

/// 条件或

/// </summary>

/// <typeparam name="T"></typeparam>

/// <param name="expr1"></param>

/// <param name="expr2"></param>

/// <returns></returns>

public static Expression<Func<T, bool>> Or<T>(this Expression<Func<T, bool>> expr1,         Expression<Func<T, bool>> expr2)         {

var invokedExpr = Expression.Invoke(expr2, expr1.Parameters.Cast<Expression>());

return Expression.Lambda<Func<T, bool>>             (Expression.Or(expr1.Body, invokedExpr), expr1.Parameters);

}

/// <summary>

/// 条件且

/// </summary>

/// <typeparam name="T"></typeparam>

/// <param name="expr1"></param>

/// <param name="expr2"></param>

/// <returns></returns>

public static Expression<Func<T, bool>> And<T>(this Expression<Func<T, bool>> expr1,         Expression<Func<T, bool>> expr2)         {

var invokedExpr = Expression.Invoke(expr2, expr1.Parameters.Cast<Expression>());

return Expression.Lambda<Func<T, bool>>

(Expression.And(expr1.Body, invokedExpr), expr1.Parameters);

}

最新文章

  1. fir.im Log Guru 正式开源,快速找到 iOS 应用无法安装的原因
  2. Python之路 day3 全局变量、局部变量
  3. Android 4.0.3 CTS 测试
  4. 如何让oracle的select强制走索引
  5. [Android Pro] http请求中传输base64出现加号变空格的解决办法
  6. 轻量级应用开发之(04)UIScrollView-1
  7. 高效的网络流dinic算法模版
  8. AJAX入门---DOM操作HTML
  9. 散文说python半篇——景观三元论与盖茨比的对话
  10. (转)Maven最佳实践:划分模块
  11. 皴linux rootpassword(方式:重置rootpassword)
  12. SmartCoder每日站立会议 01
  13. Hibernate之三态
  14. Java 嵌套类基础详解
  15. Kubernetes 编排系统
  16. Android之电话拨号和短信
  17. 多人开发时Git下冲突的产生和解决
  18. javaScript高级教程(十) iframe
  19. 查询login什么时候过期
  20. Vue基础知识之指令和生命周期(一)

热门文章

  1. Movie
  2. mtk lcm驱动加载流程 (转载)
  3. Python IDE专用编辑器PyCharm下载及配置安装过程(Ubuntu环境)
  4. Ubuntu Server14.04 32位安装odoo8.0简单方法
  5. Linux下的字符集问题
  6. number-of-segments-in-a-string
  7. new Date()时间对象
  8. 接收ET采集器数据页面
  9. 20160805_笔记本_CentOS6.4x64分区
  10. 利用php CI force_download($filename, $data) 下载.csv 文件解决文件名乱码,文件内容乱码