首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何将Func<T、bool>转换为Expression<Func<T、bool>>

如何将Func<T、bool>转换为Expression<Func<T、bool>>
EN

Stack Overflow用户
提问于 2013-02-16 13:35:29
回答 3查看 8.4K关注 0票数 9

我有一个这样的Func:

代码语言:javascript
运行
复制
 Func<MyClass, bool> func = x=>Id == 5;

如何将其转换为:

代码语言:javascript
运行
复制
 Expression<Func<MyClass, bool>>
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-02-16 13:48:10

试试这个:

代码语言:javascript
运行
复制
Func<MyClass, bool> func = x=>Id == 5;
Expression<Func<MyClass, bool>> expr = mc => func(mc);
票数 6
EN

Stack Overflow用户

发布于 2013-02-18 19:51:24

你可以这样写:

代码语言:javascript
运行
复制
Expression<Func<MyClass,bool>> expr = x=>Id == 5;

这会将expr设置为Id == 5的表达式树。

如果您这样做了:

代码语言:javascript
运行
复制
Func<MyClass, bool> func = x=>Id == 5;
Expression<Func<MyClass, bool>> expr = mc => func(mc);

然后,这会将expr设置为func调用的表达式树,而不是func主体的表达式树。

票数 13
EN

Stack Overflow用户

发布于 2013-02-16 22:23:40

您可以创建一个表达式,该表达式表示对您创建的代理的调用。但大多数时候,当您使用SQL时,您这样做是为了理解代码的作用(例如,将其转换为Expression)。你不能用表达式来调用一个不透明的函数。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14907327

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档