C#动态构建表达式树(三)--表达式的组合 前言 在筛选数据的过程中,可能会有这样的情况:有一些查询条件是公共的,但是根据具体的传入参数可能需要再额外增加一个条件.对于这种问题一般有两种方法: a. 在 Where 后再组合一个 Where,如: List<SOME_CLASS> dataList = dataList.Where(FILTER_1).Where(FILTER_2).ToList(); b. 将类型相同两个表达式组合起来(就是本文的主题了) 由于项目中既有框架的封装,查询时只能
很早就碰到了这个问题,当时也没有深入的研究,趁着空闲,遂把这个问题研究清楚. (一)普通案例 下面从一个普通的案例入手,下面准备两个List集合,都是放在内存里面的(需要模拟到远端执行的时候,我们是通过AsQueryable()来进行的) var users = new List<Usernew User() {Id = 1, Name = "zz", CompanyId = 1}, new User(){Id = 2, Name = "fyh",Compan