linq - 替换通用Lambda表达式的非通用Lambda表达式

the*_*uce 4 c# linq lambda

我有这行代码:

var predicate = Expression.Lambda<Func<TEntityType, bool>>(body, param);
Run Code Online (Sandbox Code Playgroud)

其中TEntityType是一个通用的parm.

但是,我没有通用的parm.我有:

Type _EntityType;
Run Code Online (Sandbox Code Playgroud)

Expression.Lambda的非泛型语法是什么情况?

谢谢

Cam*_*and 9

有一个重载,Expression.Lambda它采用表达式体的类型,因此您只需要在调用该重载之前动态创建该类型.

type lambdaType = typeof(Func<,>).MakeGenericType(_EntityType, typeof(bool));

var predicate = Expression.Lambda(lambdaType, body, param);
Run Code Online (Sandbox Code Playgroud)