ScanBack

Aplica a função folder em cada elemento da coleção, acumulando o resultado enquanto a percorre, neste caso, a coleção é percorrida do último índice para o primeiro.

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

Este método é semelhante ao FoldBack, mas neste caso os resultados intermediários também são retornados.

Parâmetros

Retorno

Func<T, TState, TState> folder

IEnumerable<T> source

TState state

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.FoldBack( (_state, element) => _state + element.Item2, 6);

//result = {20, 16, 11, 8}

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 = { 0,1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }
int result = source.FoldBack(IntegerOperations.Add, 15);

//result = {65, 65, 64, 62, 59, 55, 50, 44, 37, 29, 20}

Last updated