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.

Last updated