c# - 将两个表达式组合在一起?
问题描述
我正在构建一个将字符串转换为 lambda 表达式的应用程序。例如,如果输入是一个类似的字符串"c.id>7 && c.grade<5"
,我应该把它翻译成c=>c.id>7 && c.grade<5
;如果输入是字符串"c.id>7 && u.grade<5"
,我应该把它翻译成(c,u)=>c.id>7 && u.grade<5
.
我已经构建了一个应用程序来识别字符串"c.id>7 && c.grade<5"
,并将其转换为两个表达式c=>c.id>7
和c=>c.grade<5
. 但是当我尝试将这两个表达式组合在一起时,如下所示:
// expression1 is c=>c.id>7, expression1 is return by method Expression.Lambda
// expression2 is c=>c.grade<5 or u.grade<5, expression2 is return by method Expression.Lambda
Expression.AndAlso(expression1, expression2);
系统说
there is no binary opertor AndAlso between System.Func`2[Test.user, System.Boolean] and System.Func`2[Test.user, System.Boolean]
那么谁能帮我把这两个表达式结合起来,谢谢!
ps:
// expression1 and expression2 is built like below
Expression expression = Expression.Lambda(Expression.AndAlso(leftExpression, rightExpression), parameterExpressions.ToArray());
解决方案
推荐阅读
- javascript - 如何计算状态中真实成员的数量并更新到屏幕?
- python - MultiOutputClassifier ValueError:类的数量必须大于一
- newrelic - 无法使用 WedriverJS(在 New Relic 上)单击阴影元素
- javascript - 希望在悬停时删除谷歌饼图的值
- python - “线程”类中的关键部分
- reactjs - ReactJS 国际化
- apache-kafka - 是否可以为 SingleStore Kafka 管道配置批量大小?
- python-sphinx - 无法通过 Confluence 服务器对 Sphinx 文档进行身份验证
- python - 在 python 字典中获取正确的列表值
- linux - 起搏器集群中的侦听器预言机