相关疑难解决方法(0)

评估字符串"3*(4 + 2)"产生int 18

.NET框架是否有一个函数可以计算字符串中包含的数字表达式并返回结果?铁:

string mystring = "3*(2+4)";
int result = EvaluateExpression(mystring);
Console.Writeln(result); // Outputs 18
Run Code Online (Sandbox Code Playgroud)

是否有标准框架功能,您可以用我的EvaluateExpression方法替换?

c# string math numeric evaluate

95
推荐指数
9
解决办法
16万
查看次数

是否可以在.NET中运行时编译和执行新代码?

注意:数学表达式评估不是这个问题的焦点.我想在.NET中运行时编译和执行新代码. 话虽如此...

我想允许用户在文本框中输入任何等式,如下所示:

x = x / 2 * 0.07914
x = x^2 / 5
Run Code Online (Sandbox Code Playgroud)

并将该等式应用于传入的数据点.输入数据点由x表示,每个数据点由用户指定的等式处理.我多年前做过,但我不喜欢这个解决方案,因为它需要为每次计算解析等式的文本:

float ApplyEquation (string equation, float dataPoint)
{
    // parse the equation string and figure out how to do the math
    // lots of messy code here...
}
Run Code Online (Sandbox Code Playgroud)

当您处理大量数据点时,这会引入相当多的开销.我希望能够在飞行中将方程转换为函数,这样它只需要解析一次.它看起来像这样:

FunctionPointer foo = ConvertEquationToCode(equation);
....
x = foo(x);  // I could then apply the equation to my incoming data like this
Run Code Online (Sandbox Code Playgroud)

函数ConvertEquationToCode将解析方程并返回指向应用适当数学的函数的指针.

该应用程序基本上是在运行时编写新代码.这可能与.NET有关吗?

.net c# runtime compilation

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


编译并运行动态代码,而不生成EXE?

我想知道是否可以编译,并运行存储的代码,而不生成exe或任何类型的其他文件,基本上从内存中运行该文件.

基本上,Main应用程序将有一些存储代码(可能会更改的代码),并且需要编译代码并执行它.没有创建任何文件.

创建文件,运行程序,然后删除文件不是一个选项.编译后的代码需要从内存中运行.

代码示例,或指针,或几乎任何东西都欢迎:)

c# runtime-compilation

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

在线创建和使用一次性物体是否安全?

我已经看到了使用一次性对象内联,所以很多时候开发商这里的实例.内联我的意思是:

var result = new DataTable().Compute("1 + 4 * 7", null);
Run Code Online (Sandbox Code Playgroud)

我知道该Dispose方法不会被调用,但由于没有对该对象进行引用,垃圾收集器将如何处理它?使用像这样的一次性物体是否安全?

DataTable在我的例子中使用了一个,因为它是我找到的唯一具体例子,但我的问题一般适用于一次性物品.我不是那样亲自使用它们,我只是想知道如果它们以这种方式使用它们是否由GC处理它们.

c#

17
推荐指数
1
解决办法
542
查看次数

数学表达式求值程序的简单库或实现

我有一个只包含一行的文本文件,该行只包含一个数学表达式,例如12+(3.0*(4)-1)/ sqrt(121)

我的程序需要将此express表示为字符串,然后给出结果
13

是否有任何简单的方法或第三方dll/lib来实现这一目标?

评论增加:

评估一串简单的数学表达式

这里是解决方案,但许多解决方案只包含+ - /*,我需要尽可能多的运营商,如天花板方形平方根和功率()

所以这个链接可能是最好的解决方案
http://www.codeproject.com/KB/recipes/sota_expression_evaluator.aspx

c c# c++ c++11

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

执行数学表达式的最佳方法是什么?

可能重复:
.NET中是否有字符串数学计算器?
评估数学表达式的最佳和最短的方法

我有一个字符串变量

string exp = "12+34+4*56+(23*45+12)2/30"
Run Code Online (Sandbox Code Playgroud)

这样做的最佳方式是什么?没有使用第三方DLL?

c#

12
推荐指数
1
解决办法
1534
查看次数

解析数学表达式

是否有一种简单的方法来解析表示为字符串的简单数学表达式,如(x +(2*x)/(1-x)),为x提供值,并获得结果?

我查看了几个在线示例中的VSAEngine,但是,我收到一个警告,该程序集已被弃用而不使用它.

如果它有任何差异,我使用的是.NET 4.0.

.net c# c#-4.0

8
推荐指数
3
解决办法
3万
查看次数

需要.Net的公式解释器

我正在寻找一个可以在C#应用程序中使用的公式解释器.它需要能够解释这样的字符串:

max(1+2, 4) * x
Run Code Online (Sandbox Code Playgroud)

我发现编写一个快速的公式解释器(codeproject.com)几乎可以满足我的需要,但它不允许具有多个参数的函数.我可以添加它的功能,但我只是想知道这样的事情是否已经存在.

谢谢

.net c# interpreter expression formula

6
推荐指数
1
解决办法
7026
查看次数

如何以编程方式将字符串转换为数学表达式

我是 C# 的初学者。我在将字符串转换为数学表达式时遇到问题。我有一个用户界面,用户可以在其中使用随机公式字段创建公式。在另一个 UI 中,用户将输入这些公式字段。

例如,第一次公式可能是,(a+b)^n而另一个公式可能是((a+b+c)^n+b)

在我的计算用户界面中,第一次用户将为 a、b、n 提供输入,而对于第二个公式,用户将为 a、b、c、n 提供输入。任何人都可以帮助我了解如何以编程方式获得两个公式的结果吗?提前致谢

c# math expression formula

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