0

我有以下声明。

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

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

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

4

1 回答 1

11

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

var search = PredicateBuilder.True<SomeType>();
search = search.And(f => false);
于 2012-06-22T16:58:44.640 回答