聚合c#语法中的两个表达式

本文关键字:两个 表达式 语法 聚合 | 更新日期: 2023-09-27 18:16:40

如何在c#中聚合两个表达式?例如:

public virtual List<T> List(Expression<Func<T, bool>> filters, bool includeHistory = false, params Expression<Func<T, object>>[] include)
{
    // HOW TO DO THIS?
    filters = includeHistory ? filters : filters.Add(e=>e.DeleteDate == null);    
    List<T> entities = _baseDao.List<T>(filters, sorting, include)                   
}

聚合c#语法中的两个表达式

Joe Albahari (c# 3.0 in a Nutshell和LINQPad的作者)编写了一个名为PredicateBuilder的实用程序,可以将and和OR函数一起使用。

http://www.albahari.com/nutshell/predicatebuilder.aspx

虽然它在函数上工作,但它是开源的,所以你可以检查它并看看它是如何工作的。

我在这里找到了解决方案

非常好的扩展表达式类的方法