当前位置: 首页 > news >正文

C#用户自定义输入表达式计算 DataTable().Compute() 方法支持的运算

DataTable.Compute() 方法是C#中一个强大的表达式计算工具,它支持多种运算和函数。以下是详细的介绍:
支持的运算符

  1. 算术运算符
    • 加法
    • 减法
    • 乘法

/ - 除法

% - 取模(求余数)

  1. 比较运算符
    = 或 == - 等于

<> 或 != - 不等于

< - 小于

<= - 小于等于

  • 大于

= - 大于等于

  1. 逻辑运算符
    AND 或 && - 逻辑与

OR 或 || - 逻辑或

NOT 或 ! - 逻辑非

IN - 包含在集合中

  1. 字符串运算符
    • 字符串连接

支持的函数

  1. 聚合函数
    Count() - 计数

Sum(column) - 求和

Avg(column) - 平均值

Min(column) - 最小值

Max(column) - 最大值

  1. 类型转换函数
    Convert(expression, type) - 类型转换

Len(string) - 字符串长度

IsNull(expression, replacement) - 空值替换

IIF(condition, true_value, false_value) - 条件判断

  1. 字符串函数
    Substring(expression, start, length) - 子字符串

Trim(string) - 去除两端空格

using System;
using System.Data;class DataTableComputeExamples
{static void Main(){DataTable table = new DataTable();// 基本算术运算Console.WriteLine("算术运算:");Console.WriteLine($"5 + 3 = {table.Compute("5 + 3", "")}");        // 8Console.WriteLine($"10 - 4 = {table.Compute("10 - 4", "")}");      // 6Console.WriteLine($"6 * 7 = {table.Compute("6 * 7", "")}");        // 42Console.WriteLine($"15 / 3 = {table.Compute("15 / 3", "")}");      // 5Console.WriteLine($"17 % 5 = {table.Compute("17 % 5", "")}");      // 2// 比较运算Console.WriteLine("\n比较运算:");Console.WriteLine($"5 > 3 = {table.Compute("5 > 3", "")}");        // TrueConsole.WriteLine($"5 = 3 = {table.Compute("5 = 3", "")}");        // FalseConsole.WriteLine($"5 <> 3 = {table.Compute("5 <> 3", "")}");      // TrueConsole.WriteLine($"5 >= 5 = {table.Compute("5 >= 5", "")}");      // True// 逻辑运算Console.WriteLine("\n逻辑运算:");Console.WriteLine($"True AND False = {table.Compute("True AND False", "")}");  // FalseConsole.WriteLine($"True OR False = {table.Compute("True OR False", "")}");    // TrueConsole.WriteLine($"NOT True = {table.Compute("NOT True", "")}");              // False// 复杂表达式Console.WriteLine("\n复杂表达式:");Console.WriteLine($"(5 + 3) * 2 = {table.Compute("(5 + 3) * 2", "")}");        // 16Console.WriteLine($"5 + 3 * 2 = {table.Compute("5 + 3 * 2", "")}");            // 11Console.WriteLine($"(10 > 5) AND (3 < 7) = {table.Compute("(10 > 5) AND (3 < 7)", "")}"); // True// 使用函数Console.WriteLine("\n使用函数:");Console.WriteLine($"LEN('Hello') = {table.Compute("LEN('Hello')", "")}");      // 5Console.WriteLine($"IIF(5>3, 'Yes', 'No') = {table.Compute("IIF(5>3, 'Yes', 'No')", "")}"); // Yes// 字符串操作Console.WriteLine("\n字符串操作:");Console.WriteLine($"'Hello' + ' ' + 'World' = {table.Compute("'Hello' + ' ' + 'World'", "")}"); // Hello World}
}

举例计算器的使用

using System;
using System.Data;class ExpressionCalculator
{public static object Calculate(string expression){try{DataTable table = new DataTable();// 预处理表达式,确保兼容性string processedExpression = expression.Replace("&&", " AND ").Replace("||", " OR ").Replace("!", " NOT ").Replace("==", "=");return table.Compute(processedExpression, "");}catch (Exception ex){throw new ArgumentException($"计算错误: {ex.Message}");}}static void Main(){string[] expressions = {"3 > 7","(4 < 3) OR (2 > 0)","(33 + 3) * 2","5 + 3 * 2","10 / 3","2 = 2 AND 3 = 3","NOT (5 < 3)","LEN('Hello')","IIF(10 > 5, 'Greater', 'Less')"};foreach (string expr in expressions){try{var result = Calculate(expr);Console.WriteLine($"{expr,-30}{result}");}catch (Exception ex){Console.WriteLine($"{expr,-30} → 错误: {ex.Message}");}}}
}
http://www.dtcms.com/a/476069.html

相关文章:

  • wordpress静态文件nginx配置站长工具seo综合查询是什么
  • 有没有做定制衣服的网站住房城乡建设部招投标网站
  • 模仿网站 素材哪里来怎样进入公众号平台
  • Point and Spot Shadows Perspective Shadows
  • 游戏系统网站开发说明书青年旅舍 wordpress 模版
  • 南通网站优化公司中天建设集团网站
  • 厦门有设计网站的吗宣传片拍摄协议
  • 北京网站建设模板下载加强网站微信公众号平台建设
  • 昆明响应式网站制作贵州网站定制
  • 我的三次做网站的经历海飞丝网站建设中面临的技术问题_并提出可行的技术解决方案
  • 北京建站系统模板wordpress非常难用
  • 徐州微网站开发公司自己做的网站主页被人篡改
  • 苏州网站建设代理做物流的网站有哪些内容
  • dede做的网站打不开茂名seo网站建设
  • 网站建设特效代码同服务器网站查询工具
  • 安阳网站设计公司西双版纳网站制作公司
  • 辽宁省城乡与住房建设厅网站最优惠的网站优化
  • wordpress qq主题下载失败模板做的网站不好优化
  • 建站服务论坛python3.5 做网站
  • 融合注意力机制的双分支 LSTM-Transformer 混合网络用于高精度飞机轨迹预测-中文核心-【完整代码数据可直接运行】
  • 网站如何吸引用户更改wordpress登陆界面
  • 网站备案管局电话沈阳男科医院哪家好一些
  • 菜鸟python在线编程衡阳网站优化方案
  • 制作微信网站模板免费下载河北建设工程信息网官网费用中项网
  • 万网 网站托管俄罗斯电商平台有哪些
  • 河南省网站建设意见asp图片网站源码
  • 新泰市住房和城乡建设局网站中文网站开发
  • 织梦后台做的网站怎么绑定域名中国新闻社是什么级别媒体
  • 禾天姿网站开发南阳 网站建设
  • 网站流量统计系统seo搜索引擎优化总结