即使添加了明确的false语句,PredicateBuilder仍然是正确的

时间:2012-06-22 16:55:59

标签: c# .net expression-trees predicatebuilder

我有以下声明。

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

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

起初,我正在尝试表达;没有成功,所以我尝试了这个“假”。不管我做了什么,它仍然是一样的。发生了什么事?

1 个答案:

答案 0 :(得分:11)

PredicateBuilder方法不会改变表达式(它们不能,因为表达式树是不可变的) - 你需要使用返回值:

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