连接两个Func委托

Mas*_*oud 19 c# lambda concatenation func

假设我有类:

public class Order
{
   int OrderId {get; set;}
   string CustomerName {get; set;}
}
Run Code Online (Sandbox Code Playgroud)

我也在下面声明了变量

Func<Order, bool> predicate1 = t=>t.OrderId == 5 ;
Func<Order, bool> predicate2 = t=>t.CustomerName == "Ali";
Run Code Online (Sandbox Code Playgroud)

是否有任何方法可以连接这些变量(使用AND/OR)并将结果放在第三个变量中?例如:

Func<Order, bool> predicate3 = predicate1 and predicate2;
Run Code Online (Sandbox Code Playgroud)

要么

Func<Order, bool> predicate3 = predicate1 or predicate2;
Run Code Online (Sandbox Code Playgroud)

Ste*_*ven 43

和:

Func<Order, bool> predicate3 = 
    order => predicate1(order) && predicate2(order);
Run Code Online (Sandbox Code Playgroud)

要么:

Func<Order, bool> predicate3 = 
    order => predicate1(order) || predicate2(order);
Run Code Online (Sandbox Code Playgroud)

  • 这需要在搜索结果中更高一些,因为所有最重要的答案都需要解决“表达式”类型。 (2认同)