zoukankan      html  css  js  c++  java
  • Lambda表达式公共拼接函数(原创)

     1 #region Lambda公共拼接函数
     2 /// <summary>
     3 /// LambdaWhere(枚举)
     4 /// </summary>
     5 public enum LambdaWhere : int
     6 {
     7   And = 1,
     8   Or = 2
     9 }
    10 /// <summary>
    11 /// Lambda公共拼接函数(来自:http://www.cnblogs.com/CielWater)
    12 /// </summary>
    13 /// <param name="BodyLeft">要拼接的Lambda表达式</param>
    14 /// <param name="BodyRight">要拼接的Lambda表达式</param>
    15 /// <param name="LambdaWhere">拼接方式,And或者Or</param>
    16 /// <returns></returns>
    17 public Expression<Func<T, bool>> Lambda<T>(Expression<Func<T, bool>> BodyLeft, Expression<Func<T, bool>> BodyRight, LambdaWhere LambdaWhere)
    18 {
    19   if (BodyLeft != null && BodyRight != null)
    20   {
    21     ParameterExpression pe = BodyLeft.Parameters.Single();
    22     switch (LambdaWhere)
    23     {
    24       case LambdaWhere.And:
    25         BodyLeft = Expression.Lambda<Func<T, bool>>(
    26         Expression.And(BodyLeft.Body, Expression.Invoke(BodyRight, pe)), pe);
    27         break;
    28       default:
    29         BodyLeft = Expression.Lambda<Func<T, bool>>(
    30         Expression.Or(BodyLeft.Body, Expression.Invoke(BodyRight, pe)), pe);
    31         break;
    32     }
    33   }
    34   else if (BodyLeft != null)
    35   {
    36     return BodyLeft;
    37   }
    38   else
    39   {
    40     return BodyRight;
    41   }
    42   return BodyLeft;
    43 }
    44 #endregion
  • 相关阅读:
    pyqt 设置QTabWidget标签页不可选
    C#分块读取文本数据(FileStream)
    C#IO读写文本txt文件中的数据
    C#IO读写文本txt文件中的数据
    Winform开发主界面菜单的动态树形列表展示
    Winform开发主界面菜单的动态树形列表展示
    C#LinqJoin两个DataTable
    C#LinqJoin两个DataTable
    c#转义字符
    c#转义字符
  • 原文地址:https://www.cnblogs.com/CielWater/p/3476975.html
Copyright © 2011-2022 走看看