1
resposta

Icomparer x Icomparable

ola, nao entendi muito bem a diferença das duas interfaces , quando devo usar uma ou outra , qual é a diferença entre elas?

1 resposta

Olá Luan, tudo certo?

Aparentemente é muito parecido, mas de modo simples, o objeto a ser classificado implementará IComparable, enquanto a classe que irá ordenar os objetos implementará o IComparer.

Na documentação, fica mais fácil de entender ao ver os métodos das interfaces:

IComparable.CompareTo(Object): Compara a instância atual com outro objeto do mesmo tipo e retorna um inteiro que indica se a instância atual precede, segue ou ocorre na mesma posição da ordem de classificação do outro objeto.

IComparer.Compare(Object, Object): Compara dois objetos e retorna um valor que indica se um é menor, igual ou maior do que o outro.

Espero ter ajudado! Bons estudos!