public static IIterable <TResult> Process <TSource, TResult>(this IIterable <TSource> source, Iterator.ProcessingAction <TSource, TResult> processingAction) { if (source == null) { throw new ArgumentNullException("source"); } if (processingAction == null) { throw new ArgumentNullException("processingFunc"); } var linkIterable = source as ILinkIterable <TSource>; if (linkIterable != null) { return(linkIterable.Process(processingAction)); } return(new LinkIterable <TSource, TResult>(source, Iterator.Process <TSource, TResult>(processingAction))); }
public ILinkIterable <TNewResult> Process <TNewResult>(Iterator.ProcessingAction <TResult, TNewResult> processingAction) { return(new LinkIterable <TSource, TNewResult>(iterable, Iterator.Process(this.link, processingAction))); }