两个返回数字的表达式的和
本文关键字:数字 表达式 返回 两个 | 更新日期: 2023-09-27 18:08:03
我有一个列表和一个查询,定义如下:
var list = new List<int>();
for (var i = 0; i < 4; i++)
{
list.Add(i);
}
var query = list.AsQueryable();
现在我有一个Expression
,它返回数字的平方:
private static Expression<Func<int, int>> Square()
{
return i => i * i;
}
和三次方如下:
private static Expression<Func<int, int>> Third()
{
return i => i * i * i;
}
我想要的是能够在Select
表达式中选择这些的总和,代码类似于以下伪代码:
var result = query.Select(Square() + Third()).ToList();
我期望结果是
0
2
12
36
是否有一种方法可以轻松实现,或者我应该用其他方法?
注:请记住,为了便于定义问题,方法被简化了。
注:我使用表达式,因为这是linq到实体问题的过于简化的例子,我明白我只能使用IQueryable
作为这个主题。
如果需要表达式树,在Square().Body
和Third().Body
上使用Expression.Add
静态方法
如果你只需要委托,使用x => Square().Compile()(x) + Third().Compile()(x)