首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将Lambda函数转换为Lambda表达式

将Lambda函数转换为Lambda表达式
EN

Stack Overflow用户
提问于 2011-10-16 06:55:12
回答 2查看 427关注 0票数 1

我尝试将多项选择与lambda函数组合到一个lambda表达式中。我该怎么做?我知道最后一行是错的,但让你明白我的意思。

代码语言:javascript
复制
Func<Event, bool> where = null;

if (!string.IsNullOrWhiteSpace(searchToken))
    where = q => q.Name.ToUpper().Contains(searchToken.ToUpper());

where += q => q.Hidden = false;

Expression<Func<Event, bool>> where1 = q => where; <-- Erroring
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-10-16 15:30:54

我怀疑你想要PredicateBuilder。(源代码可以在该页面上找到。)你可以这样使用它:

代码语言:javascript
复制
var predicate = q => !q.Hidden;
if (!string.IsNullOrWhiteSpace(searchToken))
{
    predicate = predicate.And(q => q.Name.ToUpper()
                                         .Contains(searchToken.ToUpper());
}
return predicate;

这是假设你想要“和”条件-你从来没有说清楚...

注意,这也不是以不区分大小写的方式进行比较的好方法。如果你能告诉我们什么将消耗查询(例如LINQ to SQL,LINQ to EF),我们可以建议一种与提供者兼容的方式来执行不区分大小写的查询。

票数 4
EN

Stack Overflow用户

发布于 2011-10-16 15:17:53

看看http://msdn.microsoft.com/en-us/library/bb882637.aspx吧。如何使用表达式树构建动态查询。

当使用Expression <>时,像这样的表达式必须在编译时是已知的,因为编译器随后会构建AST抽象语法3并将其作为数据存储在expression <>实例中。

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

https://stackoverflow.com/questions/7781209

复制
相关文章

相似问题

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