Scan2

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.

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 Fold2, mas neste caso os resultados intermediários também são retornados.

Como usar

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

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

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

//result = {15, 17, 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 = { 2, 3, 5, 0 }
//IEnumerable<int> source2 = { 3, 2, 0, 5 }

source.Scan2(source2, 30, IntegerOperations.Add3);

//result = { 35, 40, 45, 50}

Last updated