Объединение двух делегатов Func

Предположим, что у меня есть класс:

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

Я также объявляю ниже переменные

Func<Order, bool> predicate1 = t=>t.OrderId == 5 ;
Func<Order, bool> predicate2 = t=>t.CustomerName == "Ali";

Есть ли способ, который объединяет эти переменные (с AND/OR) и помещает результат в 3-ю переменную? например:

Func<Order, bool> predicate3 = predicate1 and predicate2;

или

Func<Order, bool> predicate3 = predicate1 or predicate2;

Ответы

Ответ 1

и

Func<Order, bool> predicate3 = 
    order => predicate1(order) && predicate2(order);

Или:

Func<Order, bool> predicate3 = 
    order => predicate1(order) || predicate2(order);