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
}

疑似コードでわかるように、作成中の式があり、そのうちの 1 つは foreach 内にあり、最終的にはすべてを 1 つの大きな式内に配置したいと考えています。

説明するのは難しいですが、その大きなものは、子の式を実行して実行するリスト、またはそのようなものです。それがリストではないことを除いて、それは式です。:)

そんなに大きな表現があるのですか。これについてフォローしていただければ幸いです。

編集:

大きなものは、その項目/式を実行し、それらを and 演算子でリンクして実行します。

4

2 に答える 2

0

PredicateBuilder はあなたが探しているものだと思います。これを確認してください。linq 式ツリーに飛び込みたい場合は、このMSDN リファレンスも参照できます。

私が助けてくれることを願っています!

于 2013-11-11T08:52:01.773 に答える
0

Expression.Blockまたはを使用できますExpression.Lambda。式のリストから作成できます。

于 2013-11-11T08:52:09.307 に答える