连接两个Func委托

假设我有类:

public class Order { int OrderId {get; set;} string CustomerName {get; set;} } 

我也在下面声明变量

 Func predicate1 = t=>t.OrderId == 5 ; Func predicate2 = t=>t.CustomerName == "Ali"; 

有没有办法连接这些变量(用AND / OR)并将结果放在第三个变量? 例如:

 Func predicate3 = predicate1 and predicate2; 

要么

 Func predicate3 = predicate1 or predicate2; 

和:

 Func predicate3 = order => predicate1(order) && predicate2(order); 

要么:

 Func predicate3 = order => predicate1(order) || predicate2(order);