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;
  • 相关阅读:
    手动安装ceph集群
    openstack端口禁用安全规则
    debian10桌面美化
    debian10 制作动态扩容根分区镜像
    CentOS7制作动态扩容根分区镜像
    EFKLK日志收集工具栈
    ceph rbd(csi) 对接 kubernetes sc
    secureCRT 814配色方案
    python function
    Linux操作篇之LNMP(一)
  • 原文地址:https://www.cnblogs.com/senyier/p/7305124.html
Copyright © 2011-2022 走看看