CompareWith
Compara duas coleções utilizando uma função para compará-las.
Esta função retorna o primeiro resultado diferente de zero da comparação entre os elementos. A função retorna o resultado de comparer
sobre os dois elementos.
Atenção
Este método causa a avaliação do
IEnumerable<T>
.
Parâmetros | Retorno |
---|---|
Func<T, T, int > comparer IEnumerable<T> source1 IEnumerable<T> source2 |
int |
Como usar
A função comparer
deve receber um elemento de cada coleção e retornar um valor inteiro em relação à comparação dos dois elementos.
Esta função foi inspirada na função compareWith
disponível no módulo List do F#.
Comparando duas coleções
//IEnumerable<int> source = { 1, 2, 4 }
//IEnumerable<int> source2 = { 1, 2, 3 }
int result = source.CompareWith(source2,
(element1, element2) => element1 > element2 ? 1
: element1 < element2 ? -1
: 0 );
// result = 1
Comparando duas coleções obtendo a diferença
//IEnumerable<int> source = { 1, 42, 3 }
//IEnumerable<int> source2 = { 1, 2, 3 }
int result = source.CompareWith(source2,
(element1, element2) => element1 - element2);
// result = 42
Note que no exemplo anterior, o resultado é 42
por conta da primeira subtração retornar 0
.