ncalc:NCalc is a fast and lightweight expression evaluator library for .NET, designed for flexibility and high performance. It supports a wide range of mathematical and logical operations.

NCalc is a fast and lightweight expression evaluator library for .NET, designed for flexibility and high performance. It supports a wide range of mathematical and logical operations.

分支185Tags62
文件最后提交记录最后更新时间
6 天前
6 天前
6 天前
1 天前
1 天前
1 年前
6 天前
2 年前
25 天前
1 天前
2 年前
2 年前
6 个月前
8 年前
1 年前
6 天前
2 年前
6 天前
14 天前
2 个月前
1 天前

NCalc

GitHub Actions 工作流状态 覆盖率 NuGet NuGet 下载量 Discord

NCalc 是一款适用于 .NET 的快速、轻量级表达式计算库。它能够解析并计算包含文本、运算符、参数、内置函数及自定义函数的数学和逻辑表达式。

NCalc 支持现代 .NET、.NET Standard 2.0 以及 .NET Framework 4.8。

想先体验一下吗?打开 NCalc 在线 playground,即可在浏览器中直接运行表达式,由 Blazor WASM 提供支持。

文档

完整的语言参考、运行时选项、插件及 API 参考,请从 NCalc 文档 开始了解。

常用入口点:

安装

如需使用表达式引擎,请安装 NCalc

dotnet add package NCalc

Important

NCalc、NCalcSync 和 NCalcAsync 均为重定向包,目前直接指向 NCalc.Core,以保持社区工作整合到同一存储库之前的兼容性。

仅在需要时添加可选包:

dotnet add package NCalc.LambdaCompilation
dotnet add package NCalc.DependencyInjection

快速示例

计算表达式

using NCalc;

var result = new Expression("2 + 3 * 5").Evaluate();
// 17

使用参数

var expression = new Expression("Round(Pow([x], 2) + [offset], 2)");
expression.Parameters["x"] = 3.14;
expression.Parameters["offset"] = 10;

var result = expression.Evaluate();
// 19.86

添加自定义函数

var expression = new Expression("SecretOperation(3, 6)");
expression.Functions["SecretOperation"] = args =>
    (int)args.Evaluate(0) + (int)args.Evaluate(1);

var result = expression.Evaluate();
// 9

编译为 lambda

请先安装 NCalc.LambdaCompilation

using NCalc.LambdaCompilation;

var expression = new Expression("1 + 2");
Func<int> function = expression.ToLambda<int>();

var result = function();
// 3

关于数据类型、运算符、内置函数、异步计算、缓存、表达式序列化以及高级配置,请查看 文档

帮助

如遇错误或使用问题,请提交 issue。请包含表达式、预期结果、实际结果以及您使用的 NCalc 版本。

了解更多

相关项目

项目 描述
FastExpressionCompiler C# 表达式树的快速编译器。NCalc 使用它进行 lambda 编译。
Jint .NET 的 JavaScript 解释器,由 NCalc 的原作者 Sebastien Ros 开发。
JJMasterData 运行时表单生成器,使用 NCalc 实现字段可见性和其他动态行为。
NCalc101 用于试用 NCalc 表达式的 Web 应用程序,由 Panoramic Data 开发。
NCalcJS NCalc 的 TypeScript/JavaScript 移植版。
PanoramicData.NCalcExtensions NCalc 的扩展函数,包括字符串函数、switch、if、in、typeOf 和 cast。
Parlot Sebastien Ros 开发的快速轻量级解析器创建工具。NCalc 在其默认解析器中使用 Parlot。

正在使用 NCalc?创建一个 PR 并将您的项目添加到这里!

版本控制

NCalc 使用 Nerdbank.GitVersioning。每个库构建都可追溯到原始的 git 提交。更多信息请参阅 发布文档

星标历史

Star History Chart

项目介绍

.NET 数学表达式计算器【此简介由AI生成】

定制我的领域
161.12 K124访问 GitHub