gpt4 book ai didi

c# - 创建 n 元表达式

转载 作者:行者123 更新时间:2023-11-30 23:30:11 25 4
gpt4 key购买 nike

我有一个 N System.Linq.Expressions.Expression 序列,我想将其转换为 N-Nary 表达式,该表达式使用运算符 N-1 次将我的所有表达式连接成一个。

因此对于 4 个表达式 {e1, e2, e3, e4} 和运算符 AND 的集合,我会得到:e1 AND e2 AND e3 AND e4.

由于运算符相同,我可以通过简单地将 N-1 BinaryExpressions

链接在一起来创建该表达式
Expression result = (((e1 AND e2) AND e3) AND e4);

但我认为可能有更简单的方法来做到这一点。基本上是这样的

Expression.NNary(ExpressionType operator, IEnumerable<Expression> expressions) 

是否已经实现了类似的东西,或者我必须使用 BinaryExpressions 来实现?

最佳答案

您所描述的是 reduce 函数,在 LINQ 中称为 Aggregate。它将一系列值简化为单个值,如下所示:

int[] numbers = { 1, 2, 3, 4 };
int sum = numbers.Aggregate((acc, current) => acc + current, 0); // 10

如何组合 acccurrent 由您决定。

关于c# - 创建 n 元表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35042492/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com