0

我是表达式树的新手,我正在寻找一个可能包含另一个表达式的表达式,并且可以在我的代码中的不同位置动态地将这些另一个表达式添加到自身。

看看这个例子:

public void DoSomething()
{
   var ex1 = Expression.Call(....);

   // something else happens here

   var ex2 = Expression.Loop(...);

  // again something else

  foreach(var item in items)
  {
     var ex3 = Expression.And(...);
  }

  var everythingInOneExpression = .. // here I would like to have all expressions in one
}

正如您在伪代码中看到的那样,正在创建表达式,其中一个甚至在 foreach 中,我希望最终将它们全部放在一个大表达式中。

很难解释,但那个大的有点像一个列表,它通过它的子表达式运行并执行它们,或者类似的东西。除了它不是一个列表,它是一个表达式。:)

有这么大的表情吗。我希望你能在这个上关注我。

编辑:

大的应该通过它的项目/表达式运行并执行它们与和运算符链接。

4

2 回答 2

0

我认为 PredicateBuilder 是您正在寻找的。检查这个。如果您想深入了解 linq 表达式树,还可以查看MSDN 参考。

希望我有所帮助!

于 2013-11-11T08:52:01.773 回答
0

您可以使用Expression.Blockor Expression.Lambda,它们可以从表达式列表中创建。

于 2013-11-11T08:52:09.307 回答