Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 返回数字的两个表达式之和_C#_Linq_Expression_Iqueryable - Fatal编程技术网

C# 返回数字的两个表达式之和

C# 返回数字的两个表达式之和,c#,linq,expression,iqueryable,C#,Linq,Expression,Iqueryable,我有一个简单定义如下的列表和查询: var list = new List<int>(); for (var i = 0; i < 4; i++) { list.Add(i); } var query = list.AsQueryable(); 第三种力量是这样的: private static Expression<Func<int, int>> Third() { return i => i * i * i; } 我希望

我有一个简单定义如下的列表和查询:

var list = new List<int>();

for (var i = 0; i < 4; i++)
{
    list.Add(i);
}

var query = list.AsQueryable();
第三种力量是这样的:

private static Expression<Func<int, int>> Third()
{
    return i => i * i * i;
}
我希望结果是好的

0
2
12
36
有没有一种方法可以轻松做到这一点,或者我应该用其他方法

请记住,这些方法简化为强调,以便于定义问题


另外,我之所以使用表达式,是因为这是Linq to entities问题的一个过于简化的示例,我知道我只能使用截至的
IQueryable

如果需要表达式树,请在
Square().Body
Third().Body
上使用静态方法


如果您只需要委托,请使用
x=>Square().Compile()(x)+Third().Compile()(x)

,它应该被称为
Cube()
,而不是
Third()
。显然,我忘记了将它用于linq to实体;(据我所知,我必须使用表达式。目前我觉得过于简单化这个问题很愚蠢。或者也许我错了,你可以不用表达式来完成任务?如果你想让它成为一个实体查询,你确实需要表达式,这改变了答案的工作方式。我认为(还显示了特定的布尔大小写)。如果不是,则搜索其他“[C#]表达式组合”首先提问并解释为什么会有不同。你还需要重写参数。@SLaks我同意,我的答案中缺少一些细节。他需要从头开始建立一个全新的表达式树,但
表达式。添加
是基本要素。在
SwapVisitor
的帮助下,我成功地做到了。耶!谢谢非常感谢:)
var result = query.Select(Square() + Third()).ToList();
0
2
12
36