表达式树与委托

 

表达式树表示树状数据结构中的代码,其中每个节点都是一个表达式,例如,方法调用或二进制操作,如x < y

您可以编译和运行由表达式树表示的代码。这使得可执行代码的动态修改,在各种数据库中执行LINQ查询以及创建动态查询成为可能。

在LINQ中,表达式树被用来表示针对实现IQueryable <T>的数据源的结构化查询。例如,LINQ提供程序实现用于查询关系数据存储的IQueryable <T>接口。C#编译器将定位此类数据源的查询编译为在运行时构建表达式树的代码。然后,查询提供者可以遍历表达式树数据结构并将其转换为适合数据源的查询语言。

LINQ中还使用表达式树来表示分配给Expression <TDelegate>类型的变量的lambda表达式。

本主题描述如何使用表达式树来创建动态的LINQ查询。动态查询在编译时不知道查询的具体情况时非常有用。例如,应用程序可能会提供一个用户界面,使最终用户能够指定一个或多个谓词来过滤数据。为了使用LINQ进行查询,这种应用程序必须使用表达式树来在运行时创建LINQ查询。

 

转载于:https://www.cnblogs.com/cjm123/p/8316016.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值