串联两个Func委托 [英] Concatenate two Func delegates

查看:87
本文介绍了串联两个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个变量中? 例如:

Is there any way that concatenate these variables(with AND/OR) and put the result in 3rd variable? for example:

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

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

推荐答案

并且:

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

或者:

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

这篇关于串联两个Func委托的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆