2012-06-22 79 views
0

我有以下陳述。即使在添加明確的虛假陳述後PredicateBuilder仍然爲真

var search = PredicateBuilder.True<SomeType>(); 
search.And(f => false); 

// Still the "search" variable value is: {f => true}. 

起初,我在試着表達;沒有成功,所以我嘗試了這個「假」。不管我做了什麼,它仍然是一樣的。發生什麼事?

回答

11

PredicateBuilder方法不發生變異的表達(他們不能,因爲表達式樹是不可變的) - 你需要使用的返回值:

var search = PredicateBuilder.True<SomeType>(); 
search = search.And(f => false); 
相關問題