最近、私はPredicateBuilderクラス(ここに表示)を使用して、式ツリーの生成を支援しています。提供されているTrue、And、およびOrメソッドは正常に機能します。ただし、Notメソッドも使用したいので、これまでのところ、1つにしようとするとエラーが発生します。
Incorrect number of parameters supplied for lambda declaration.
ここにその試みがあります:
public static Expression<Func<T, bool>> Not<T>(this Expression<Func<T, bool>> expr)
{
return Expression.Lambda<Func<T, bool>>
(Expression.Not(Expression.Invoke(expr, expr.Parameters.Cast<Expression>())));
}
何かご意見は?
NB