.NET技术-6.0. Expression 表达式树 生成 Lambda
.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
.NET技术-6.0. Expression 表达式树 生成 Lambda的更多相关文章
- .net 系列:Expression表达式树、lambda、匿名委托 的使用
首先定义一个泛型委托类型,如下: public delegate T Function<T>(T a, T b); 实现泛型委托的主体代码,并调用: public static strin ...
- .net 系列:Expression表达式树、lambda、匿名委托 的使用【转】
https://www.cnblogs.com/nicholashjh/p/7928205.html 首先定义一个泛型委托类型,如下: public delegate T Function<T& ...
- 介绍一个可以将Expression表达式树解析成Transact-SQL的项目Expression2Sql
一.Expression2Sql介绍 Expression2Sql是一个可以将Expression表达式树解析成Transact-SQL的项目.简单易用,几分钟即可上手使用,因为博主在设计Expres ...
- 委托、匿名委托、Lambda 表达式、Expression表达式树之刨根问底
本篇不是对标题所述之概念的入门文章,重点在阐述它们的异同点和应用场景.各位看官,这里就不啰嗦了,直接上代码. 首先定义一个泛型委托类型,如下: public delegate T Function&l ...
- Expression表达式树(C#)
Lambda表达式: 1.下面举例通过Lambda表达式创建了一个用于验证Name的Func委托. //通过Lambda表达式创建一个对象的Name属性验证委托 Func<SearchInfo, ...
- C#在泛型类中,通过表达式树构造lambda表达式
场景 最近对爬虫的数据库架构做调整,需要将数据迁移到MongoDB上去,需要重新实现一个针对MongoDB的Dao泛型类,好吧,动手开工,当实现删除操作的时候问题来了. 我们的删除操作定义如下:voi ...
- 关于Expression表达式树的拼接
最近在做项目中遇到一个问题,需求是这样的: 我要对已经存在的用户进行检索,可以根据用户的id 或者用户名其中的一部分字符来检索出来,这样就出现了三种情况 只有id,只有用户名中一部字符,或者全部都有. ...
- Expression表达式树
表达式树表示树状数据结构的代码,树状结构中的每个节点都是一个表达式,例如一个方法调用或类似 x < y 的二元运算 1.利用 Lambda 表达式创建表达式树 Expression<Fun ...
- Expression 表达式树学习整理
整理了一下表达式树的一些东西,入门足够了 先从ConstantExpression 开始一步一步的来吧 它表示具有常量值的表达式 我们选建一个控制台应用程序 ConstantExpression _ ...
随机推荐
- 计算机是如何计算的、运行时栈帧分析(神奇i++续)
关于i++的疑问 通过JVM javap -c 查看字节码执行步骤了解了i++之后,衍生了一个问题: int num1=50; num1++*2执行的是imul(将栈顶两int类型数相乘,结果入栈), ...
- maven知识结构笔记
1.什么是maven Maven 翻译为"专家"."内行",是 Apache 下的一个纯 Java 开发的开源项目.基于项目对象模型(缩写:POM)概念,Mav ...
- 056、Java中continue的用法
01.代码如下: package TIANPAN; /** * 此处为文档注释 * * @author 田攀 微信382477247 */ public class TestDemo { public ...
- 《ES6标准入门》(阮一峰)--6.正则的扩展
1.RegExp 构造函数 在 ES5 中,RegExp构造函数的参数有两种情况. 第一种情况是,参数是字符串,这时第二个参数表示正则表达式的修饰符(flag). var regex = new Re ...
- SpringBoot启动流程分析
前景提示 @ComponentScan 的处理都放在org.springframework.context.annotation.ConfigurationClassParser#doProcess ...
- jQuery通过name获取值
使用jQuery获取name="day"的input对象: 方法1 var dayObj=$('input[name="day"]'); for(int i=0 ...
- Django static配置
STATIC_URL = '/static/' # HTML中使用的静态文件夹前缀 STATICFILES_DIRS = [ os.path.join(BASE_DIR, "static&q ...
- SHELL学习笔记三
SHELL学习笔记一 SHELL学习笔记二 SHELL学习笔记三 for 命令 读取列表中的复杂值 从变量读取列表 从命令读取值 更改字段分隔符 用通配符读取目录 which 使用多个测试命令 unt ...
- Tornado中的Cookie设置
Tornado中的cookie分为两种--普通cookie和安全cookie 普通cookie 1.创建cookie 原型 self.set_cookie(name, value, domain=No ...
- P 1029 旧键盘
转跳点: