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
Was this helpful?