2013-06-13 3 views
15

내가 살전 클래스가 있다고 가정 :연결하여 두 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로) 이러한 변수를 연결하여 어떤 방법이 있나요 넣어 세 번째 변수의 결과?

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

또는

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

답변

34

그리고 :

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

또는 : 예를 들어 는

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

이 상단의 모든 때문에 검색 결과에 더 할 필요가 답은 Expression t로 해결해야합니다. ypes. – moarboilerplate

+0

아름답게 간단합니다. – Holf

+0

우수 답변, 우아한! –