Esempio n. 1
0
        public static TResult Aggregate <TSource, TAccumulate, TResult>(this List <TSource> source, TAccumulate seed, Func <TAccumulate, TSource, TAccumulate> func, Func <TAccumulate, TResult> resultSelector)
        {
            var aggregate = new FoldForward <TSource, TAccumulate>(func, seed);

            ListSegmentNode.ProcessList(source, ref aggregate);
            return(resultSelector(aggregate.GetResult()));
        }
Esempio n. 2
0
        public static TResult Aggregate <TSource, TAccumulate, TResult>(this ReadOnlyMemory <TSource> source, TAccumulate seed, Func <TAccumulate, TSource, TAccumulate> func, Func <TAccumulate, TResult> resultSelector)
        {
            var aggregate = new FoldForward <TSource, TAccumulate>(func, seed);

            MemoryNode.ProcessMemory(source, ref aggregate);
            return(resultSelector(aggregate.GetResult()));
        }
Esempio n. 3
0
        public static TAccumulate Aggregate <TSource, TAccumulate>(this TSource[] source, TAccumulate seed, Func <TAccumulate, TSource, TAccumulate> func)
        {
            var aggregate = new FoldForward <TSource, TAccumulate>(func, seed);

            ArrayNode.ProcessArray(source, ref aggregate);
            return(aggregate.GetResult());
        }