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 = 20When 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 = 70Last updated
Was this helpful?