.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 _ ...
随机推荐
- 036、Java中三目运算符的使用
01.代码如下: package TIANPAN; /** * 此处为文档注释 * * @author 田攀 微信382477247 */ public class TestDemo { public ...
- android studio3.1 添加闪屏页面(启动欢迎界面)(例子简单无BUG)
截图 启动页的 activity_splash.xml 我用了一张图片自己添加吧 <?xml version="1.0" encoding="utf-8" ...
- Java 文件
章节 Java 基础 Java 简介 Java 环境搭建 Java 基本语法 Java 注释 Java 变量 Java 数据类型 Java 字符串 Java 类型转换 Java 运算符 Java 字符 ...
- chatdet用法
1. 下载chardet 2. 在命令提示符里转到chardet的存放目录,执行python setup.py install 3. 在代码中用 import chardet 导入模块 4. 用法:c ...
- RadioGroup的使用
前言: 使用RadioGroup就可以在选择情况多的时候,简化代码 RadioGroup 使用互斥选择时,会使用RadioGroup标签下面RadioButton,如下面的代码:(这样写下来,男和女的 ...
- C++ 检测物理内存以及磁盘空间
BOOL CheckResource() { MEMORYSTATUSEX statex; statex.dwLength = sizeof (statex); GlobalMemoryStatusE ...
- 11.json
import json # json反序列化 # json_str = '{"name":"qiyue","age":18}' # stud ...
- mysql第五篇 : MySQL 之 视图、触发器、存储过程、函数、事物与数据库锁
第五篇 : MySQL 之 视图.触发器.存储过程.函数.事物与数据库锁 一.视图 视图是一个虚拟表(非真实存在的),其本质是‘根据SQL语句获取动态的数据集,并为其命名‘ ,用户使用时只需使用“名称 ...
- TX2安装pycharm&tensorflow
https://blog.csdn.net/zt1091574181/article/details/88899668 TX2 (JetPack4.2)安装 Pycharm&TensorFlo ...
- org.apache.jasper.JasperException: /WEB-INFO/jsp/product/edit.jsp(168,45)
PWC6038:"${empty data.code?'001':fn:substring(data.code,0,8)}" contains invalid expression ...