public static IIterable <TNewResult> AggregateMany <TSource, TAccumulate, TNewResult>(this IIterable <TSource> source, TAccumulate seed, Func <TAccumulate, TSource, TAccumulate> func, Func <TAccumulate, TNewResult> resultSelector) { if (source == null) { throw new ArgumentNullException("source"); } if (func == null) { throw new ArgumentNullException("func"); } if (resultSelector == null) { throw new ArgumentNullException("resultSelector"); } var linkIterable = source as ILinkIterable <TSource>; if (linkIterable != null) { return(linkIterable.Aggregate(seed, func, resultSelector)); } return(new LinkIterable <TSource, TNewResult>(source, Iterator.Aggregate(seed, func, resultSelector))); }
public ILinkIterable <TNewResult> Aggregate <TAccumulate, TNewResult>(TAccumulate seed, Func <TAccumulate, TResult, TAccumulate> func, Func <TAccumulate, TNewResult> resultSelector) { return(new LinkIterable <TSource, TNewResult>(iterable, Iterator.Aggregate(this.link, seed, func, resultSelector))); }