C# 为字典编写lambda表达式<;字符串,字符串>;成员
我想用表达式实现这个简单的lambdaC# 为字典编写lambda表达式<;字符串,字符串>;成员,c#,lambda,C#,Lambda,我想用表达式实现这个简单的lambda x => x.myDictionary["key"] == "value" 这是我迄今为止所做的 var parameterExpression = Expression.Parameter(typeof(T), "p"); var memberExpression = Expression.Property(parameterExpression, "myDictionary"); var expressionCall = Expressi
x => x.myDictionary["key"] == "value"
这是我迄今为止所做的
var parameterExpression = Expression.Parameter(typeof(T), "p");
var memberExpression = Expression.Property(parameterExpression, "myDictionary");
var expressionCall = Expression.Call(memberExpression, typeof(IDictionary<string, string>).GetMethod("get_Item"), Expression.Constant("key"));
var eq1 = Expression.Equal(expressionCall, Expression.Constant("value"));
var lambda = Expression.Lambda(eq1, parameterExpression);
q.Where(lambda);
var参数Expression=Expression.Parameter(typeof(T),“p”);
var memberExpression=Expression.Property(parameterExpression,“myDictionary”);
var expressionCall=Expression.Call(memberExpression,typeof(IDictionary).GetMethod(“get_Item”)、Expression.Constant(“key”);
var eq1=表达式.Equal(表达式调用,表达式.Constant(“值”));
var lambda=Expression.lambda(eq1,parameterExpression);
q、 其中(λ);
但过滤器不工作。你有什么想法吗?
IEnumerable。其中
需要一个Func
和IQueryable。其中
需要一个表达式
,但是表达式。Lambda
返回一个LambdaExpression
对象,它不是表达式。
。你是要生成Func>还是要生成一个表达式表达式
?(即,您想将其与Linq to对象或Linq to实体一起使用?@Dai很抱歉响应太晚q
是一个IQueryable
。我想用扩展方法向q
添加新的过滤器。结果证明扩展方法不起作用。如果我直接应用这个逻辑,它就会工作。