@@ -36,7 +36,8 @@ ToolGood.Algorithm是一个功能强大、轻量级、兼容`Excel公式`的算
3636 var j = engine .TryEvaluate (" json('{\" Name\" :\" William Shakespeare\" , \" Age\" :51, \" Birthday\" :\" 04/26/1564 00:00:00\" }').Age" , null );// Return 51 返回51
3737 var k = engine .TryEvaluate (" json('{\" Name\" :\" William Shakespeare \" , \" Age\" :51, \" Birthday\" :\" 04/26/1564 00:00:00\" }')[Name].Trim()" , null );// Return to "William Shakespeare" 返回"William Shakespeare" (不带空格)
3838 var l = engine .TryEvaluate (" json('{\" Name1\" :\" William Shakespeare \" , \" Age\" :51, \" Birthday\" :\" 04/26/1564 00:00:00\" }')['Name'& 1].Trim().substring(2, 3)" , null );// Return "ill" 返回"ill"
39-
39+ var n = engine .TryEvaluate (" {Name:\" William Shakespeare\" , Age:51, Birthday:\" 04/26/1564 00:00:00\" }.Age" , null );// Return 51 返回51
40+ var m = engine .TryEvaluate (" {1,2,3,4,5,6}.has(13)" , true );// Return false 返回false
4041```
4142
4243支持常量` pi ` , ` e ` , ` true ` , ` false ` 。
@@ -47,12 +48,13 @@ bool转数值,假为`0`,真为`1`。bool转字符串,假为`FALSE`,真
4748
4849索引默认为` Excel索引 ` ,如果想用c#索引,请设置` UseExcelIndex ` 为` false ` 。
4950
50- 中文符号自动转成英文符号:` 括号 ` , ` 方括号 ` , ` 逗号 ` , ` 引号 ` , ` 双引号 ` 。
51-
51+ 中文符号自动转成英文符号:` 括号 ` , ` 逗号 ` , ` 引号 ` , ` 双引号 ` ,` 加 ` ,` 减 ` ,` 乘 ` ,` 除 ` ,` 等号 ` 。
5252
5353注:字符串拼接使用` & ` 。
5454
5555
56+
57+
5658注:` find ` 为Excel公式,find(要查找的字符串, 被查找的字符串[ , 开始位置] )
5759
5860## 自定义参数
@@ -96,7 +98,7 @@ bool转数值,假为`0`,真为`1`。bool转字符串,假为`FALSE`,真
9698
9799```
98100
99- 参数以方括号定义 ,如 ` [参数名] ` 。
101+ 参数定义 ,如 ` [参数名] ` , ` 【参数名】 ` , ` #参数名# ` , ` @参数名 ` 。
100102
101103注:还可以使用` AddParameter ` 、` AddParameterFromJson ` 添加方法,使用` DiyFunction ` +=来自定义函数。
102104
@@ -105,15 +107,34 @@ bool转数值,假为`0`,真为`1`。bool转字符串,假为`FALSE`,真
105107
106108## 自定义参数
107109``` csharp
108- var helper = new ToolGood .Algorithm .AlgorithmEngineHelper ();
109- helper .IsKeywords (" false" ); // return true
110- helper .IsKeywords (" true" ); // return true
111- helper .IsKeywords (" mysql" ); // return false
110+ AlgorithmEngineHelper .IsKeywords (" false" ); // return true
111+ AlgorithmEngineHelper .IsKeywords (" true" ); // return true
112+ AlgorithmEngineHelper .IsKeywords (" mysql" ); // return false
112113
113- DiyNameInfo p5 = helper .GetDiyNames (" ddd(d1, 22)" );
114+ DiyNameInfo p5 = AlgorithmEngineHelper .GetDiyNames (" ddd(d1, 22)" );
114115 Assert .AreEqual (" ddd" , p5 .Functions [0 ]);
115116 Assert .AreEqual (" d1" , p5 .Parameters [0 ]);
116117```
118+ ## 支持单位
119+
120+ 可设置标准单位:长度(默认:` m ` )、面积(默认:` m2 ` )、体积(默认:` m3 ` )、重量(默认:` kg ` )。
121+
122+ 注:公式计算时,先将带单位的数量转成标准单位,再进行数字计算。
123+
124+ ``` csharp
125+ AlgorithmEngine engine = new AlgorithmEngine ();
126+ bool a = engine .TryEvaluate (" 1=1m" , false ); // return true
127+ bool b = engine .TryEvaluate (" 1=1m2" , false ); // return true
128+ bool c = engine .TryEvaluate (" 1=1m3" , false ); // return true
129+ bool d = engine .TryEvaluate (" 1=1kg" , false ); // return true
130+
131+ // 单位转化
132+ var num = AlgorithmEngineHelper .UnitConversion (1 M ," 米" ," 千米" );
133+
134+ // 不抛错例子
135+ bool error = engine .TryEvaluate (" 1m=1m2" , false ); // return true
136+ ```
137+
117138
118139## Excel公式
119140
@@ -123,7 +144,6 @@ bool转数值,假为`0`,真为`1`。bool转字符串,假为`FALSE`,真
123144
124145注2:函数名带★,表示第一个参数可以前置,如` (-1).ISTEXT() `
125146
126-
127147注3:函数名带▲,表示受` Excel索引 ` 影响,
128148
129149#### 逻辑函数
0 commit comments