Ejemplo n.º 1
0
        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)));
        }
Ejemplo n.º 2
0
 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)));
 }