Como usar Distinct() com expressão lambda para filtrar duplicatas por propriedade do objeto?
Olá a todos! Sou novo em C# e encontrei um problema ao trabalhar com coleções. Tenho uma lista de objetos da classe Person:
public class Person
{
public int Id { get; set; }
public string Name { get; set; }
public int Age { get; set; }
}
Preencho a lista com dados e nela aparecem duplicatas pelo campo Name. Preciso obter apenas nomes únicos, mas mantendo os objetos inteiros (ou pelo menos selecionar um dos duplicados).
Sei que existe o método Distinct(), mas ele funciona apenas para tipos primitivos ou se sobrescrevermos Equals e GetHashCode na classe. E não quero modificar a classe Person — ela é usada em outros lugares, e a comparação por todos os campos não me serve.
Vi que no LINQ há uma sobrecarga Distinct(IEqualityComparer), mas escrever uma classe comparadora separada para cada caso parece muito complicado. É possível