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

public static event Func<Student, bool> myevent;
public delegate void del(int i, int j);
static void Main(string[] args)
{ var students = new List<Student> {
new Student(){ Id=, Age=, Name="张三1", Sex=true , GradeId=},
new Student(){ Id=, Age=, Name="李四1", Sex= false , GradeId=},
new Student(){ Id=, Age=, Name="王二", Sex= false , GradeId=},
new Student(){ Id=, Age=, Name="赵六", Sex=true , GradeId=}, }; // BookShopPlus2Entities db = new BookShopPlus2Entities();
//AsNoTracking查询的对象不要放在对象池中
//特别说明:对于使用AsNoTracking()的数据不能用于修改。
//List<Book> db = bsc.Books.AsNoTracking().ToList(); //del mydel = new del(add);
//mydel.Invoke(1, 9);
//// //匿名方法
//mydel += delegate(int h, int m)
//{ //};
////Lamda表达式
//mydel += (a, b) =>
//{
// Console.WriteLine(a + b);
//}; //生成 1==1
Expression expwhere = Expression.Equal(Expression.Constant(), Expression.Constant());
//生成 s=>
ParameterExpression exps = Expression.Parameter(typeof(Student), "s");
//生成s.Age>12
Expression exp1 = Expression.GreaterThan(Expression.Property(exps, "Age"), Expression.Constant());
//生成s.Age<22
Expression exp2 = Expression.LessThan(Expression.Property(exps, "Age"), Expression.Constant());
//生成 s.Age>12 and s.Age<22 或连接 Expression.Or and 连接 Expression.And
Expression exp3 = Expression.And(exp1, exp2);
//Expression<Func<Student, bool>> lamband = Expression.Lambda < Func<Student, bool>.Combine();
//生成s=>Age>12 AND s.Age<22
Expression<Func<Student, bool>> lamband =
Expression.Lambda<Func<Student, bool>>(exp3, exps);
var s = students.Where(lamband.Compile()).ToList();
} }
public class Student
{
public int Id { get; set; } //学号
public string Name { get; set; } //学员姓名
public int Age { get; set; } //学生年龄
public bool Sex { get; set; } //学生性别
public int GradeId { get; set; }
}

引用:https://www.cnblogs.com/wlzhang/p/7690630.html

最新文章

  1. listview 的适配器 getview 随着软件健盘显示和隐藏,出现多个空的position问题
  2. Gate level Simulation(门级仿真)
  3. 配置.net连接数据库的配置文件
  4. C++11 feature: move constructor
  5. C++引用变量(转)
  6. ListView滑动删除
  7. HH的军训(容斥)
  8. 关于Python2字符编码的体会
  9. 解callback嵌套
  10. EF 4.1 学习资源汇总
  11. hdu3829最大独立集
  12. oracle一些基本命令
  13. Docker常见仓库Node.js
  14. JS基础整理
  15. 积木式编程——自制app点灯
  16. Java多线程系列1 线程创建以及状态切换
  17. matlabR2017安装
  18. Rocket MQ 源码解析
  19. linux 随笔
  20. 使用apt install和使用apt-get install的区别是什么

热门文章

  1. 011、Java中将范围大的数据类型变为范围小的数据类型
  2. Ubuntu 终端命令速查表
  3. spring boot引入外部jar包
  4. DevOps - 与传统方式区别
  5. 2020牛客寒假算法基础集训营4 I 匹配星星
  6. MQTT 协议学习:007-Keep Alive 连接保活 与 对应报文(PINGREQ、PINGRESP)
  7. spring boot rest api exception解决方案
  8. cf 762D. Maximum path
  9. 72.Python中ORM聚合函数详解:Avg,aggregate,annotate
  10. 五十四、SAP中LVC表格每列的宽度自适应