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 ReduceBack, 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 section 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