1. public static event Func<Student, bool> myevent;
  2. public delegate void del(int i, int j);
  3. static void Main(string[] args)
  4. {
  5.  
  6. var students = new List<Student> {
  7. , Age=, Name=},
  8. , Age=, Name=},
  9. , Age=, Name=},
  10. , Age=, Name=},
  11.  
  12. };
  13.  
  14. // BookShopPlus2Entities db = new BookShopPlus2Entities();
  15. //AsNoTracking查询的对象不要放在对象池中
  16. //特别说明:对于使用AsNoTracking()的数据不能用于修改。
  17. //List<Book> db = bsc.Books.AsNoTracking().ToList();
  18.  
  19. //del mydel = new del(add);
  20. //mydel.Invoke(1, 9);
  21. //// //匿名方法
  22. //mydel += delegate(int h, int m)
  23. //{
  24.  
  25. //};
  26. ////Lamda表达式
  27. //mydel += (a, b) =>
  28. //{
  29. // Console.WriteLine(a + b);
  30. //};
  31.  
  32. //生成 1==1
  33. Expression expwhere = Expression.Equal(Expression.Constant(), Expression.Constant());
  34. //生成 s=>
  35. ParameterExpression exps = Expression.Parameter(typeof(Student), "s");
  36. //生成s.Age>12
  37. Expression exp1 = Expression.GreaterThan(Expression.Property(exps, ));
  38. //生成s.Age<22
  39. Expression exp2 = Expression.LessThan(Expression.Property(exps, ));
  40. //生成 s.Age>12 and s.Age<22 或连接 Expression.Or and 连接 Expression.And
  41. Expression exp3 = Expression.And(exp1, exp2);
  42. //Expression<Func<Student, bool>> lamband = Expression.Lambda < Func<Student, bool>.Combine();
  43. //生成s=>Age>12 AND s.Age<22
  44. Expression<Func<Student, bool>> lamband =
  45. Expression.Lambda<Func<Student, bool>>(exp3, exps);
  46. var s = students.Where(lamband.Compile()).ToList();
  47. }
  48.  
  49. }
  50. public class Student
  51. {
  52. public int Id { get; set; } //学号
  53. public string Name { get; set; } //学员姓名
  54. public int Age { get; set; } //学生年龄
  55. public bool Sex { get; set; } //学生性别
  56. public int GradeId { get; set; }
  57. }

Expression 生成 Lambda的更多相关文章

  1. .NET技术-6.0. Expression 表达式树 生成 Lambda

    .NET技术-6.0. Expression 表达式树 生成 Lambda public static event Func<Student, bool> myevent; public ...

  2. 自动生成 Lambda查询和排序,从些查询列表so easy

    如下图查询页面,跟据不同条件动态生成lambda的Where条件和OrderBy,如果要增加或调整查询,只用改前台HTML即可,不用改后台代码 前台代码: <div style="pa ...

  3. c# 使用Expression 生成sql

    使用Expression 生成sql  update语句的时候遇到了个问题 ,Expression<Action<T>>  la   这个委托里面老获取不到 引用类型的值,甚至 ...

  4. 在EF中使用Expression自动生成p=>new Entity(){X="",Y="",..}格式的Lambda表达式灵活实现按需更新

    一.基本介绍      回忆:最早接触Expression是在学校接触到EF的时候,发现where方法里的参数是Expression<Func<T,bool>>这么一个类型,当 ...

  5. 匿名函数 lambda表达式(lambda expression)

    阅读g2log时,发现有两行代码居然看不懂. 1. auto bg_call =  [this, log_directory]() {return pimpl_->backgroundChang ...

  6. SqlDataReader生成动态Lambda表达式

    上一扁使用动态lambda表达式来将DataTable转换成实体,比直接用反射快了不少.主要是首行转换的时候动态生成了委托. 后面的转换都是直接调用委托,省去了多次用反射带来的性能损失. 今天在对Sq ...

  7. 生成动态Lambda表达式1

    SqlDataReader生成动态Lambda表达式 上一扁使用动态lambda表达式来将DataTable转换成实体,比直接用反射快了不少.主要是首行转换的时候动态生成了委托. 后面的转换都是直接调 ...

  8. 浅析Java 8新特性Lambda Expression

    什么是Lambda Expression 对于Lambda Expression,我的理解是,它是一个函数表达式,如下: (int x, int y) -> x - y 符号左边定义了函数的输入 ...

  9. JDK 8 - Lambda Expression 的优点与限制

    我们知道 JDK 8 新增了 Lambda Expression 这一特性. JDK 8 为什么要新增这个特性呢? 这个特性给 JDK 8 带来了什么好处? 它可以做什么?不可以做什么? 在这篇文章, ...

随机推荐

  1. Nginx宣布正式支持gRPC,附示例代码

    原创 2018-03-20 薛命灯 聊聊架构 作者|Owen Garrett编辑|薛命灯 NGINX 官方博客正式宣布 NGINX 支持原生的 gPRC,现在就可以从代码仓库拉取快照版本.该特性将会被 ...

  2. 洛谷P3620 数据备份

    好吧,我一开始说这是个神级数据结构毒瘤题,后来改成神题了. 主要是贪心做法的巧妙转化: 首先发现选择的一对必须相邻,于是我们搞出差分. 然后考虑选取最小值时,最小值两侧的数要么同时选,要么都不选. 然 ...

  3. windows蜜汁调音

    哈,用的蜂鸣器,我静音了这东西还放. 只能调的很垃圾,但是很好玩. #include<cstdio> #include<windows.h> using namespace s ...

  4. [luogu2292][L语言]

    题目链接 思路 这道题我用的是AC自动机的做法. 先把子串挂到trie树上,在单词结尾打标记的时候,标记的是当前单词的长度.然后去上面查询母串的时候,每查询到一个单词,就建立一条线段,这条线段的结尾位 ...

  5. poj 2385 Apple Catching(记录结果再利用的动态规划)

    传送门 https://www.cnblogs.com/violet-acmer/p/9852294.html 题意: 有两颗苹果树,在每一时刻只有其中一棵苹果树会掉苹果,而Bessie可以在很短的时 ...

  6. AndroidS软件代码提示

    在用Eclipse时候,你可以进行设置,设置成不管你输入任何字母,都能进行代码的提示,在Android Studio中也可以 设置,而且比Eclipse设置来的简单.当然如果你觉得代码自动提示会降低你 ...

  7. gitlab 500 服务器错误 重启解决了

    查看状态 sudo gitlab-ctl status # 启动Gitlab所有组件 sudo gitlab-ctl start # 停止Gitlab所有组件 sudo gitlab-ctl stop ...

  8. vnc连接虚拟机中的CentOS7系统

    1.CentOS7 core安装gnome桌面 安装Gnome包# yum groupinstall "GNOME Desktop" "Graphical Adminis ...

  9. (链表 双指针) leetcode 160. Intersection of Two Linked Lists

    Write a program to find the node at which the intersection of two singly linked lists begins. For ex ...

  10. 剑指Offer_编程题_14

    题目描述 输入一个链表,输出该链表中倒数第k个结点. /* struct ListNode { int val; struct ListNode *next; ListNode(int x) : va ...