c# - 组合 Func<bool> 表达式

标签 c# expression-trees

<分区>

Possible Duplicate:
Combining two expressions (Expression<Func<T, bool>>)

我有一个方法接受单个 Expression<Func<bool>>参数

void MethodOne(Expression<Func<bool>> expression)

我有多个 Expression<Func<bool>> 实例.我如何动态地将这些表达式组合成一个 Expression<Func<bool>>使用 Expression.OrElse (即构建表达式树)?

例如,如果我有两个表达式,例如

() => objectA.PropertyOneIsSet

() => objectB.PropertyTwoIsSet

我希望最终结果是:

() => objectA.PropertyOneIsSet || objectB.PropertyTwoIsSet

所以我可以将它传递给我上面的方法。

最佳答案

您可以创建 ExpressionVisitor 来组合查询。查看此 msdn 博客以获取更多信息:Combining Predicates (答案 3)。他在谈论 EF,但您可以在您的案例中使用它

关于c# - 组合 Func<bool> 表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13531395/

相关文章:

c# - 通过 Expression.Call 调用 Expression.GreaterThanOrEqual 时出现 ArgumentException

c# - ExpressionTree Compile() 方法生成 stackoverflow 异常

c# - Cassandra NumberFormatException : Zero length BigInteger

c# - 如何在 Winform 中通过拖放将图元文件转换为图像

c# - 如何在 C# winform 应用程序中提取包含多个文件夹并覆盖的 rar 文件

expression-trees - Kotlin 是否支持表达式树?

.net - ORing LINQ 查询,使用表达式树构建

C# SmtpClient 类无法使用 gmail 发送电子邮件

c# - EntityType 没有定义键

c# - 编译 lambda 表达式会产生带有 Closure 参数的委托(delegate)