我已经搜索过并找到了与我的问题有关的类似帖子,但似乎没有什么能解决我的问题。
我对 C# 相当陌生,这是我第一次尝试构建表达式树。(请放轻松;-)
我正在尝试创建一个表达式树,一旦编译,它就会过滤一组数据上的值。
这是我的表达方法:
private static Expression<Func<TItem, bool>> CreateFilterExpression<TItem>(string propertyName, string expressionType, dynamic filterValue)
{
if (param == null)
{
param = Expression.Parameter(typeof(TItem), "item");
}
MemberExpression member = GetMemberExpression<TItem>(propertyName);
//When we call our method, we need to evaluate on the same type
//we convert the filter value to the type of the property we are evaluating on
dynamic convertedValue = Convert.ChangeType(filterValue, member.Type);
MethodInfo method = member.Type.GetMethod(expressionType, new[] { member.Type });
ConstantExpression constantValue = Expression.Constant(convertedValue, member.Type);
Expression containsMethodExp;
if …Run Code Online (Sandbox Code Playgroud)