我有以下声明。
var search = PredicateBuilder.True<SomeType>();
search.And(f => false);
// Still the "search" variable value is: {f => true}.
起初,我正在尝试表达;没有成功,所以我尝试了这个“假”。不管我做了什么,它仍然是一样的。发生了什么事?
答案 0 :(得分:11)
PredicateBuilder
方法不会改变表达式(它们不能,因为表达式树是不可变的) - 你需要使用返回值:
var search = PredicateBuilder.True<SomeType>();
search = search.And(f => false);