ForAll2

Testa se cada par de elementos na mesma posição nas duas coleções satisfaz a condição definida por predicate.

Esta função é interrompida assim que encontrar o primeiro par de elementos que não satisfaça a condição informada.

Atenção

Este método causa a avaliação do IEnumerable<T>.

Parâmetros

Retorno

Func<T, T2, bool> predicate

IEnumerable<T> source

IEnumerable<T2> source2

bool

Como usar

Verificando se todos os valores das duas coleções são números pares

//IEnumerable<int> source =  { 2, 4, 6, 8, 10 }
//IEnumerable<int> source2 = { 4, 2 }

bool result = 
    source.ForAll2(
        source2, 
        (element1, element2) => element1 % 2 == 0
                             && element2 % 2 == 0);

//result = true
//IEnumerable<int> source =  { 2, 4, 6, 8, 10 }
//IEnumerable<int> source2 = { 4, 2, 10, 12, 16 }

bool result = 
    source.ForAll2(
        source2, 
        (element1, element2) => element1 % 2 == 0
                             && element2 % 2 == 0);

//result = true

Resultado true mesmo contendo um valor ímpar

É necessário tomar cuidado, por conta dos tamanhos diferentes enter as duas coleções, pode ocorrer este tipo de situação:

//IEnumerable<int> source =  { 2, 4, 6, 8, 10 }
//IEnumerable<int> source2 = { 4, 2, 10, 12, 16, 1 }

bool result = 
    source.ForAll2(
        source2, 
        (element1, element2) => element1 % 2 == 0
                             && element2 % 2 == 0);

//result = true

O método retornará true por conta da diferença de tamanho entre as duas coleções, com isso o último elemento de source2 não foi avaliado.

Last updated