C# 为字典编写lambda表达式<;字符串,字符串>;成员

C# 为字典编写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

我想用表达式实现这个简单的lambda

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
添加新的过滤器。结果证明扩展方法不起作用。如果我直接应用这个逻辑,它就会工作。