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.