【发布时间】:2012-04-05 19:59:40
【问题描述】:
是否可以通过某种方式转换Predicate<T> to Expression<Func<T, bool>>?
我想通过我的 ICollectionView 的过滤器使用下一个 IQueryable 函数:
public static System.Linq.IQueryable<TSource> Where<TSource>(this System.Linq.IQueryable<TSource> source, System.Linq.Expressions.Expression<System.Func<TSource, bool>> predicate)
谢谢
【问题讨论】:
-
很难以合理的方式进行(即不只是包装它)。这将涉及将 IL 反编译为表达式。
-
没有。 Predicate
是一个编译的委托。你可以做这样的事情,但使用 Expression >. -
@MarcCanalsGiraut:这似乎是个坏主意……你为什么要这样做?你不能改变任何现有的代码来避免这个问题吗?
-
别忘了标记你最喜欢的答案 ;-)
标签: c# expression iqueryable predicate icollectionview