ScanBack2

Aplica a função folder em cada um par de elementos na mesma posição nas duas coleções, acumulando o resultado enquanto a percorre, neste caso, as coleções são percorridas do último índice para o primeiro.

Este método considera o valor em state como valor inicial e o resultado acumulado enquanto percorre as duas coleções.

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

Parâmetros

Retorno

Func<T, T2, TState, TState> folder

IEnumerable<T> source

IEnumerable<T2> source2

TState state

TState

Como usar

Acumulando o maior valor na mesma posição de duas coleções

//IEnumerable<int> source =  { 0, 1, 2, 3, 4, 5 }
//IEnumerable<int> source2 = { 5, 4, 3, 2, 1, 0 }

int result = 
    source.ScanBack2( 
        source2, 
        (_state, element1, element2) =>
             _state + Math.Max(element1, element2),
        10);

//result = { 40, 35, 30, 25, 20, 15 }

Last updated