c# - 如何在 C# 中使用 Expression.IfThenElse

标签 c# expression-trees

我在存储库中有一个方法:

Query<T>(System.Linq.Expressions.Expression<Func<T,bool>> function)

当我调用它时,我想根据条件使用不同的表达式。

我试过:

m_Repository.Query<MyObject>(x => x.Infos.Count > 1 ? 
x.Infos.Any(y => y.Info.Name.StartsWith(s)) :
x.Name.StartsWith(s));

但随后它总是执行 else 部分。我想我必须使用 Expression.IfThenElse,但我无法让它工作。有关如何执行此操作的任何建议?

谢谢!

最佳答案

你试过Expression.Condition

关于c# - 如何在 C# 中使用 Expression.IfThenElse,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6730127/

相关文章:

c# - LINQ - 从所有 parent 那里获取所有子记录

c# - 在服务器标签中调用服务器函数

c# - 为什么我不能手动创建与我的直接 lambda 生成的相同的表达式树

c# - 如何设置属性选择器的值 Expression<Func<T,TResult>>

c# - 如何获取给定类型的强类型属性名称?

c# - 如何找到 ResourceManager 中可用的资源文化?

c# - 可以将接口(interface)添加到现有的 .NET 类型吗?

c# - 日期时间选择器 Winforms : Move focus left arrow key

c# - 从 Linq 表达式中获取参数值

c# - 创建一个将一种类型的函数转换为另一种类型的函数