例子如下:

Z.Expressions从2.0开始支持了NetCore,但是收费的。其它两者免费。建议使用DynamicExpresso,免费而且速度快。LambdaParser目前支持太少。

static void Main(string[] args)
{ Console.OutputEncoding = Encoding.Unicode; System.Diagnostics.Stopwatch sp = new Stopwatch();
sp.Start();
var code = "i<100&&s.Contains(\"测试\")";
var interpreter = new DynamicExpresso.Interpreter();
var result = interpreter.ParseAsDelegate<Func<int, string, bool>>(code, "i", "s");
//var result = interpreter.ParseAsExpression<Func<int, string, bool>>(code, "i", "s").Compile();
for (int i = ; i < ; i++)
{
var v = result(i, "我在测试" + i);//2213ms
//Console.WriteLine(v);
}
sp.Stop();
Console.WriteLine("time:" + sp.ElapsedMilliseconds + "ms"); //System.Diagnostics.Stopwatch sp = new Stopwatch();
//sp.Start();
////var code = @"
//// var list = new List<int>() { 1, 2, 3, 4, x };
//// var filter = list.Where(x => x < 4);
//// return filter.Sum(x => x); ";
//var code = "i<100&&s.Contains(\"测试\")";
////var result = Z.Expressions.Eval.Compile<Func<int, string, bool>>(code, "i", "s"); //for (int i = 0; i < 100000; i++)
//{
// var v = result(i, "我爱测试");
// //Console.WriteLine(v);
//}
//sp.Stop();
//Console.WriteLine("time:" + sp.ElapsedMilliseconds + "ms"); //var parse = new LambdaParser();
//while (true)
//{
// try
// {
// Console.WriteLine(new string('_', 20));
// var dics = new Dictionary<string, object>();
// dics.Add("x1", 32.0);
// dics.Add("x2", 23.0);
// dics.Add("x3", 34.5);
// dics.Add("x4", 34.5);
// dics.Add("s1", "my name is xxxxzhu!");
// dics.Add("b1", true);
// foreach (var item in dics)
// {
// Console.WriteLine(item.Key + "\t" + item.Value);
// }
// Console.WriteLine(new string('_', 20));
// Console.WriteLine("expr:");
// var expr = Console.ReadLine();
// var value = parse.Eval(expr, dics);
// Console.WriteLine("value======================" + value);
// }
// catch (Exception ex) { Console.WriteLine("error====================:" + ex.Message); }
//}
}

最新文章

  1. Asp.Net工作原理
  2. 深入理解OOP(四): 多态和继承(抽象类)
  3. HTML5初学总结
  4. android StringBuffer类的使用
  5. 深入分析Java Web技术(2) IO
  6. vs 附加包含目录属性
  7. IDM 通过防火墙规则阻止激活验证
  8. hdu5514Frogs(2015ACM-ICPC沈阳赛区F题)
  9. Java并发编程-并发工具包(java.util.concurrent)使用指南(全)
  10. PeopleSoft Object Types Definitions
  11. Spring 事务模型
  12. WordPress设置固定链接和邮件提醒遇到的问题
  13. 第一百一十八节,JavaScript,动态加载脚本和样式
  14. 云计算之路-阿里云上:负载均衡错误修改Cookie造成用户无法登录
  15. 【小程序】调用wx.request接口时需要注意的问题
  16. 用post请求方式实现对地图服务的基本操作
  17. NIO(一)——缓冲区Buffer
  18. 26 Arcpy跳坑系列——ExportToPNG
  19. 序言:我为什么学Perl
  20. pycharm运行Django发生AppRegistryNotReady: Apps aren&#39;t loaded yet.

热门文章

  1. 【ELK】【ElasticSearch】3.es入门基本操作
  2. 【java】判断某段字符串的编码方式,并按照新的编码方式输出
  3. cocos2d-x 清空缓存
  4. .NET:枚举的默认值
  5. 百度搜索推出惊雷算法严厉打击刷点击作弊行为-SEO公司分享
  6. 自定义PreferenceActivity和PreferenceFragment的样式
  7. 检查安装的 DirectX 版本
  8. 排序算法的实现(归并,快排,堆排,希尔排序 O(N*log(N)))
  9. jQuery UI全教程之一(dialog的使用教程)
  10. Android -- Toolbar跟随ListView滑动隐藏和显现