Distinct
Retorna a coleção sem elementos repetidos de acordo com os métodos comparer
e hashCodeGetter
.
Internamente este método utiliza o objeto EqualityComparerBuilder<T>
.
Parâmetros | Retorno |
---|---|
Func<T, T, bool> comparer Func<T, int> hashCodeGetter IEnumerable<T> source |
int |
Como usar
Removendo elementos duplicados
class Product {
int Id {get; set;}
string Name {get; set;}
double Price {get; set;}
}
// products:
// | Id | Name | Price |
// | 1 | Notebook | 800 |
// | 2 | Mouse | 20 |
// | 3 | Wallet | 40 |
// | 4 | Book | 10 |
// | 5 | Smartphone | 400 |
// | 1 | Notebook | 800 |
// | 1 | Notebook | 800 |
// | 4 | Book | 10 |
IEnumerable<Product> result = products.Distinct(
(product1, product2) => product1.Id == product2 == Id,
product => product.Id.GetHashCode()
);
// result:
// | Id | Name | Price |
// | 1 | Notebook | 800 |
// | 2 | Mouse | 20 |
// | 3 | Wallet | 40 |
// | 4 | Book | 10 |
// | 5 | Smartphone | 400 |