就像是:
class Foo{ public string Bar { get; set; }}static void Main(){ var lambda = Getexpression<Foo>("Bar", "abc"); Foo foo = new Foo { Bar = "aabca" }; bool test = lambda.Compile()(foo);}static expression<Func<T, bool>> Getexpression<T>(string propertyName, string propertyValue){ var parameterExp = expression.Parameter(typeof(T), "type"); var propertyExp = expression.Property(parameterExp, propertyName); MethodInfo method = typeof(string).GetMethod("Contains", new[] { typeof(string) }); var somevalue = expression.Constant(propertyValue, typeof(string)); var containsMethodExp = expression.Call(propertyExp, method, somevalue); return expression.Lambda<Func<T, bool>>(containsMethodExp, parameterExp);}您可能会发现这很有帮助。



