のリストを受け取り、カスタムSUM関数を構築するためのより良い方法私は次のメソッド定義されました:式
として使用することができますpublic static Expression Sum(IList<Expression> expressions)
{
Expression result = expressions[0];
foreach (var expression in expressions.Skip(1))
{
result = Expression.Add(result, expression);
}
return result;
}
:追加するときしかし
var number1 = Expression.Constant(42.0);
var number2 = Expression.Constant(10.0);
var resultExpression = Sum(new { number1, number2 });
var value = Expression.Lambda(resultExpression).Compile().DynamicInvoke();
を表現の数が多い、私はパフォーマンスが大丈夫ではないと思う。
私はEnumerable.SumまたはQueryable.Sumを使用して作業を行うメソッドを作成できるかどうか疑問に思っていました。
となり、なぜvar値= 42 + 10? ; P式を使用するための要件は何ですか? 2つの式、式のリスト、式のリスト、整数のリストを追加しますか? – JanDotNet
なぜ2つの数値を合計するために式ツリーを使用していますか?式ツリーの主な用途は、Entity Framework(または同様のもの)で使用され、動的コード**を複数回再利用する必要があることです**。 – xanatos
申し訳ありませんが、ここで何をしようとしていますか?パフォーマンスを向上させる最善の方法は、単一のコンパイルを行うことです。 –