zoukankan      html  css  js  c++  java
  • 一个将lambda字符串转化为lambda表达式的公共类

    一个将lambda字符串转化为lambda表达式的公共类。StringToLambda

    使用方式如下:

    var module = new Module();
    url = url.ToLower();//转换为小写
    
    Expression<Func<Module, bool>> exp = StringToLambda.LambdaParser.Parse<Func<Module, bool>>("p=>p.Url.ToLower().Contains("" + url + "")");
    var moduleList = GetModuleList(exp).GetAwaiter().GetResult();
    
    if (moduleList != null && moduleList.Count > 0)
    {
       ...
    }

    其中, p=>p.Url.ToLower().Contains("" + url + "")  为传入的lambda字符串

    创建一个 Expression<Func<Module, bool>> 的实例:其中Module为类型参数

    将实例exp作为一个变量传入到含lambda对应的方法中,如 GetModuleList(exp)


     修复了一个小bug:

    bug错误如下:

    代码修改部分:

    case TokenId.DoubleEqual:
       right = ReadExpression(level);
    
       //修改结果:当判断出操作符左侧为System.Int64,将右侧的System.Int32表达式改为System.Int64
       if (result.Expression.Type!=right.Expression.Type&&
                            (result.Expression.Type.ToString()== "Int64"|| result.Expression.Type.ToString() == "System.Int64"))
       {
           right.Expression = Expression.Convert(right.Expression, result.Expression.Type);
       }
       result.Expression = Expression.Equal(result.Expression, right.Expression);
       break;
  • 相关阅读:
    python2.7之打飞机(文末附素材链接)
    python画小猪佩奇
    什么叫递归
    DIV居中的几种方法
    什么是控制反转
    上传图片及时预览
    MVC与三层的区别
    From表单提交刷新页面?
    文件上传之form表单篇
    文件上传之伪Ajax篇
  • 原文地址:https://www.cnblogs.com/senyier/p/7305124.html
Copyright © 2011-2022 走看看