首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对所有给定参数进行nCalc求和

对所有给定参数进行nCalc求和
EN

Stack Overflow用户
提问于 2014-09-17 20:05:59
回答 1查看 1K关注 0票数 1

我正在做一个项目,它将利用nCalc来处理一些计算。这些计算还将包含一些函数。例如: sum(),avg()等。非常类似于Excel函数: sum()将对括号中提供的所有数字求和,avg将求平均值。

我已经开始实现一些更改,但我甚至不确定我是否从正确的地方开始。但是如果我从正确的地方开始,那么我需要做的就是访问参数,以便我可以迭代和总结它们。

到目前为止,我已经在EvaluationVisitor.cs中创建了一个新案例,如下所示:

代码语言:javascript
复制
case "sum":
                CheckCase("sum", function.Identifier.Name);


                if (function.Expressions.Length != 3) { 
                    throw new ArgumentException("sum() takes exactly 3 arguments");
                }

                string sum = "";

                for (int i = 1; i < function.Expressions.Length; i++)
                {

                    //here comes the logic for getting all parameters and summing them.
                    //one thing I am not sure about is how to access input parameters 
                    sum = ...;

                }

                Result = sum;

                break;

我对C#和nCalc都是新手,如果能给我一些帮助,我将不胜感激。

提前感谢!

EN

回答 1

Stack Overflow用户

发布于 2015-01-30 17:45:28

请试一试。将此代码添加到EvaluationVisitor.cs中的新开关用例("sum"):

代码语言:javascript
复制
case "sum" :
    CheckCase("Sum", function.Identifier.Name);

                        object[] inputs = new object[function.Expressions.Length];
                        for (var i = 0; i < function.Expressions.Length; i++)
                        {
                            inputs[i] = Evaluate(function.Expressions[i]);
                        }

                        Result = Numbers.Sum(inputs);
break;

Numbers.cs文件中的新方法:

代码语言:javascript
复制
public static object Sum(params object[] inputs)
        {
            var sum = inputs[0];
            for (int i = 1; i < inputs.Length; i++)
            {
                sum = Add(sum,inputs[i]);
            }

            return sum;
        }
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25890154

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档