当然可以在WHERE子句(扩展方法)中完成.但是,如果需要动态构建复杂查询,则可以使用PredicateBuilder.
var query = collection.Where( c => c.A == 1 || c.B == 2 );
或使用PredicateBuilder
var predicate = PredicateBuilder.False<Foo>();
predicate = predicate.Or( f => f.A == 1 );
if (allowB)
{
predicate = predicate.Or( f => f.B == 1 );
}
var query = collection.Where( predicate );