如何在阵列上使用表达树?
我有一个输入字符串,然后我想转换为表达式树,然后我想返回为 func< int,bool> ,我真的不知道它在数组或列表上如何工作。
//List<int> numbers = new List<int> { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
static Func<int, bool> Test(string path, string listOrArray, string input) //its gonna be dynamic type later
{
// x => (numbers[x] % 2 != 0) && (numbers[x] % 3 != 0); <-- I wanna return this
// x => (numbers[x] % 2 != 0); <-- or this
var type = Expression.Parameter(Type.GetType(path));
var prop = Expression.PropertyOrField(type, listOrArray);
var a = Expression.Constant(3);
var b = Expression.Constant(2);
var c = Expression.Constant(0);
//var temp = Expression<Func<int, bool>> smth;
//return temp.Compile();
}
I've an input string and I want to convert to an expression tree after that I want return as Func<int, bool>, I don't really know how does it work on arrays or lists.
//List<int> numbers = new List<int> { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
static Func<int, bool> Test(string path, string listOrArray, string input) //its gonna be dynamic type later
{
// x => (numbers[x] % 2 != 0) && (numbers[x] % 3 != 0); <-- I wanna return this
// x => (numbers[x] % 2 != 0); <-- or this
var type = Expression.Parameter(Type.GetType(path));
var prop = Expression.PropertyOrField(type, listOrArray);
var a = Expression.Constant(3);
var b = Expression.Constant(2);
var c = Expression.Constant(0);
//var temp = Expression<Func<int, bool>> smth;
//return temp.Compile();
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我花了一些时间研究您的问题,这是我找到的解决方案,使用numbers.Select():
计算的列表包含每个值
输出的lambda函数的输出:
表达式树 select(select()source
I spent some time researching your problem, and here is the solution I found, using numbers.Select():
The computed list contains the output of the lambda function for each value
Output:
Expression Trees Source Select() Source