如果今天有多個表達式,想要用「or」或者「and」將兩個表達式的條件串起來,該如何實作呢? 在爬了一些文後,我發現了這個寫法是最可行的。 實作: 1.新增一個 Expression 擴充方法 public static class ExpressionExtenssion { public static Expression< Func < T , bool > > ExpressionAnd< T >(this Expression< Func < T , bool > > expr1, Expression< Func < T , bool > > expr2) { var secondBody = expr2.Body.Replace( expr2.Parameters[0], expr1.Parameters[0]); return Expression.Lambda > (Expression.AndAlso(expr1.Body, secondBody), expr1.Parameters); } public static Expression< Func < T , bool > > ExpressionOr< T >(this Expression< Func < T , bool > > expr1, Expression< Func < T, bool > > expr2) { var secondBody = expr2.Body.Replace( expr2.Parameters[0], expr1.Parameters[0]); return Expression.Lambda< Func < T , bool > >