public static FilterPredicate Filter(this PredicateBinding input, Predicate predicate) { Check.NotNull(input, "input"); Check.NotNull(predicate, "predicate"); var resultType = input.Predicate.ResultType; return(new FilterPredicate(resultType, input, predicate)); }
public static ProjectPredicate Project(this PredicateBinding input, Predicate projection) { Check.NotNull(projection, "projection"); Check.NotNull(input, "input"); TypeUsage resultType = TypeUsage.Create(new CollectionType(projection.ResultType)); return(new ProjectPredicate(resultType, input, projection)); }
internal ProjectPredicate(TypeUsage resultType, PredicateBinding input, Predicate projection) : base(PredicateType.Project, resultType) { _input = input; _projection = projection; }
internal FilterPredicate(TypeUsage resultType, PredicateBinding input, Predicate predicate) : base(PredicateType.Filter, resultType) { _input = input; _predicate = predicate; }