public IEnumerable <TResult> Evaluate(IEnumerable <TSource> source) { Debug.Assert(source != null); Debug.Assert(Select != null); var result = Select(SourceFilters.Evaluate(source)); return(ResultFilters.Evaluate(result)); }
public IEnumerable <TResult> Evaluate(IEnumerable <TSource> source, IEnumerable <TInner> inner) { Debug.Assert(source != null); Debug.Assert(inner != null); var join = _joinFunction(source, inner); // the joined data var filtered = _joinFilters.Evaluate(join); // joined data filtered and ordered var result = _resultSelector(filtered); // the results (trasnformed) return(ResultFilters.Evaluate(result)); // the results filtered and ordered }