2012-06-22 2 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); 

 Смежные вопросы

  • Нет связанных вопросов^_^