相关疑难解决方法(0)

评估数学表达式的最佳和最短的方法

有许多算法来评估表达式,例如:

  1. 通过递归下降
  2. 调车场算法
  3. 反向波兰表示法

有没有办法用C#.net反射或其他现代.net技术评估任何数学表达式?

.net c# evaluation expression

17
推荐指数
2
解决办法
2万
查看次数

C#转换字符串以在逻辑条件下使用

是否可以将字符串转换为运算符以在逻辑条件中使用.

例如

if(x Convert.ToOperator(">") y) {}
Run Code Online (Sandbox Code Playgroud)

要么

if(x ">" as Operator y){}
Run Code Online (Sandbox Code Playgroud)

我很欣赏这可能不是标准练习题,因此我对那些问我为什么要做这样的事情的答案不感兴趣.

提前致谢

编辑:好的我同意,只是公平地给出一些背景.

我们有围绕反射和XML构建的系统.为了方便起见,我希望能够说出类似的话.

<Value = "Object1.Value" Operator = ">" Condition = "0"/>
Run Code Online (Sandbox Code Playgroud)

编辑:感谢您的评论,我在这里无法正确解释.我想我的问题是通过"你不能"回答的,这绝对是好的(我想的).感谢您的意见.

编辑:Sod it我将要去.

想象一下以下内容

<Namespace.LogicRule Value= "Object1.Value" Operator=">" Condition="0">  
Run Code Online (Sandbox Code Playgroud)

这将反映到一个类中,所以现在我想通过调用来测试条件

bool LogicRule.Test()
Run Code Online (Sandbox Code Playgroud)

这就是它需要聚集在一起的地方.

编辑:

好的,所以从未看过Lambdas或Expressions,我想我会照看@ jrista的建议.

我的系统允许对Enums进行解析,因此Expressions因ExpressionType Enum而具有吸引力.

所以我创建了以下类来测试这个想法:

    public class Operation
    {
        private object _Right;
        private object _Left;
        private ExpressionType _ExpressionType;
        private string _Type;

        public object Left
        {
            get { return _Left; }
            set { _Left = value; }
        }

        public object Right
        { …
Run Code Online (Sandbox Code Playgroud)

c# logic

14
推荐指数
2
解决办法
2万
查看次数

计算Java中String变量的总和

所以我有一个与Stack和Infix到Postfix计算一起工作的赋值.现在我有中缀到Postfix计算但是..有一部分它说我必须计算4个随机数和随机算子.

所以我有一个数字1-9的数组,以及一个由+, - 和*组成的字符数组.

我可以进行随机计算并将其放在一个字符串对象中,但我似乎无法以正确的方式将计算存储在Integer变量中.有了运营商的正确优先级..我已经尝试了一些Switch和If-else语句,但我找不到出路了.

我有一个Stack和一个InToPost类.

计算在代码中如下所示:

String calculation = Integer.toString(numbers[random.nextInt(9)])
            + Character.toString(operators[random.nextInt(2)])
            + Integer.toString(numbers[random.nextInt(9)])
            + Character.toString(operators[random.nextInt(2)])
            + Integer.toString(numbers[random.nextInt(9)])
            + Character.toString(operators[random.nextInt(2)])
            + Integer.toString(numbers[random.nextInt(9)]);
Run Code Online (Sandbox Code Playgroud)

我现在想要的是计算它,但是*运算符的优先级很难.

所有帮助将不胜感激:)

java arrays operators

0
推荐指数
1
解决办法
221
查看次数

将字符串转换为运算符

我想知道的是如何将字符串转换为运算符.

我希望能够将一个值与另一个值进行比较,并且它是否为真的条件是字符串.例如,字符串可能是'>'或'> ='或者其他我可以定义为'GREATER_THAN'的东西.

最好的方式只是一个案例,还是有更好的东西使用C#的所有wizadry?

c#

-2
推荐指数
1
解决办法
195
查看次数

标签 统计

c# ×3

.net ×1

arrays ×1

evaluation ×1

expression ×1

java ×1

logic ×1

operators ×1