У меня есть следующий код:
case FilterQueryType.Contains:
var parameterExp = Expression.Parameter(type, "type");
var propertyExp = Expression.Property(parameterExp, filter.PropertyName);
var containsConstExp = Expression.Constant(filter.MyKeyword);
MethodInfo method = typeof(string).GetMethod("Contains", new []{typeof(string)});
var containsMethodExp = Expression.Call(propertyExp, method, containsConstExp);
var containsLambda = Expression.Lambda<Func<T, bool>>(containsMethodExp, parameterExp);
items = items.Where(containsLambda);
break;
Этот код работает нормально, пока filter.PropertyName является строкой.Теперь у меня есть случай, когда filter.PropertyName на самом деле перечислимый из строк.
Может кто-нибудь сказать мне, как я могу создать правильное выражение для этого?(само filter.MyKeyword всегда будет одним значением)