.NET技术-6.0. Expression 表达式树 生成 Lambda
2024-08-31 02:46:54
.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
最新文章
- listview 的适配器 getview 随着软件健盘显示和隐藏,出现多个空的position问题
- Gate level Simulation(门级仿真)
- 配置.net连接数据库的配置文件
- C++11 feature: move constructor
- C++引用变量(转)
- ListView滑动删除
- HH的军训(容斥)
- 关于Python2字符编码的体会
- 解callback嵌套
- EF 4.1 学习资源汇总
- hdu3829最大独立集
- oracle一些基本命令
- Docker常见仓库Node.js
- JS基础整理
- 积木式编程——自制app点灯
- Java多线程系列1 线程创建以及状态切换
- matlabR2017安装
- Rocket MQ 源码解析
- linux 随笔
- 使用apt install和使用apt-get install的区别是什么
热门文章
- 011、Java中将范围大的数据类型变为范围小的数据类型
- Ubuntu 终端命令速查表
- spring boot引入外部jar包
- DevOps - 与传统方式区别
- 2020牛客寒假算法基础集训营4 I 匹配星星
- MQTT 协议学习:007-Keep Alive 连接保活 与 对应报文(PINGREQ、PINGRESP)
- spring boot rest api exception解决方案
- cf 762D. Maximum path
- 72.Python中ORM聚合函数详解:Avg,aggregate,annotate
- 五十四、SAP中LVC表格每列的宽度自适应