FoldBack

Applies a function to each element of the collection, starting from the end, threading an accumulator argument through the computation.

This method is very similar to ReduceBackarrow-up-right, but in this case is considered a initial state.

Parameters

Returns

Func<T, TState, TState> folder

IEnumerable<T> source

TState state

TState

Usage

Accumulating an individual property of each element through a collection

//IEnumerable<Animal> source = 
//    { ("Cats",4), ("Dogs",5), ("Mice",3), ("Elephants",2) }

int result = source.FoldBack( (_state, element) => _state + element.Item2, 6);

//result = 20

When the type of elements in your collection are: int, decimal, double, string or bool you can also use this function combined with the Operations described in operations sectionarrow-up-right as folder functions.

Using an operation as a folder

//IEnumerable<int> source = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }
int result = source.FoldBack(IntegerOperations.Add, 15);

//result = 15 + 10 + 9 + 8 + 7 + 6 + 5 + 4 + 3 + 2 + 1
//result = 70

Last updated