我正在使用ParseAsExpression
从字符串表达式构建动态lamda表达式。问题是我无法弄清楚如何解析包含像mylist.Contains(x.Id)
完整示例
var list = new int[] { 4,5,6};
var whereFunction = new Interpreter().SetVariable("mylist", list);
whereFunction.ParseAsExpression<Func<Person, bool>>("(person.Age == 5 && person.Name.StartsWith(\"G\")) || person.Age == 3 && mylist.Contains(person.Id)", "person");
答案 0 :(得分:2)
现在,您可以通过为每个方法实现别名扩展方法来解决这个问题,例如<link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet" />
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="box1">x</div>
<button class="box1">x</button>
<div class="box2"><i class="fa fa-remove"></i></div>
<button class="box2"><i class="fa fa-remove"></i></button>
=&gt; Contains
:
Exists
我认为这是一个愚蠢的解决方法,但它会起作用。
答案 1 :(得分:1)
我可以确认这是一个错误:https://github.com/davideicardi/DynamicExpresso/issues/68
目前Array.Contains
不起作用。
更新:
已在2.0.2版中修复。