首页 > 其他 > 详细

学习笔记: Expression表达式目录树详解和扩展封装

时间:2018-06-10 13:50:36      阅读:361      评论:0      收藏:0      [点我收藏+]

1. 表达式链接扩展封装,ORM常用 And  Or

/// <summary>
/// 表达式访问者
/// </summary>
public class ExpressionVisitorTest
{

    public static void Show()
     {
        

        #region 表达式链接
         {
             Expression<Func<People, bool>> lambda1 = x => x.Age > 5;
             Expression<Func<People, bool>> lambda2 = x => x.Id > 5;
             Expression<Func<People, bool>> lambda3 = lambda1.And(lambda2);
             Expression<Func<People, bool>> lambda4 = lambda1.Or(lambda2);
             Expression<Func<People, bool>> lambda5 = lambda1.Not();
             Do1(lambda3);
             Do1(lambda4);
             Do1(lambda5);
         }
         #endregion


     }
     #region PrivateMethod
     private static void Do1(Func<People, bool> func)
     {
         List<People> people = new List<People>();
         people.Where(func);
     }
     private static void Do1(Expression<Func<People, bool>> func)
     {
         List<People> people = new List<People>()
         {
             new People(){Id=4,Name="123",Age=4},
             new People(){Id=5,Name="234",Age=5},
             new People(){Id=6,Name="345",Age=6},
         };

        List<People> peopleList = people.Where(func.Compile()).ToList();
     }

    private static IQueryable<People> GetQueryable(Expression<Func<People, bool>> func)
     {
         List<People> people = new List<People>()
         {
             new People(){Id=4,Name="123",Age=4},
             new People(){Id=5,Name="234",Age=5},
             new People(){Id=6,Name="345",Age=6},
         };

        return people.AsQueryable<People>().Where(func);
     }
     #endregion
}

学习笔记: Expression表达式目录树详解和扩展封装

原文:https://www.cnblogs.com/xtxtx/p/9162432.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!