Fold

Aplica a função folder em cada elemento da coleção, acumulando o resultado enquanto a percorre.

Este método considera o valor em state como valor inicial e o resultado acumulado ao longo da coleção é retornado como resultado do método.

Este método é semelhante ao Reduce, mas neste caso é considerado um state inicial.

Parâmetros

Retorno

Func<TState, T, TState> folder

TState state

IEnumerable<T> source

TState

Como usar

Acumulando uma quantidade em cada elemento através de uma coleção

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

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

//result = 20

Para operações comuns entre valores int, decimal, double, string e bool você pode utilizar as operações como folder.

Utilizando uma operação como folder

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

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

Last updated