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     |

Last updated