LINQ Distinct() por propriedade específica do objeto
Olá, colegas! Sou novo em C# e LINQ, e me deparei com o seguinte problema.
Tenho uma lista de objetos da classe `Product`:
```csharp
public class Product
{
public int Id { get; set; }
public string Name { get; set; }
public decimal Price { get; set; }
}
```
Preencho a lista com dados, e nela podem haver duplicatas pelo campo `Name`. Por exemplo:
```csharp
var products = new List
{
new Product { Id = 1, Name = "Apple", Price = 100 },
new Product { Id = 2, Name = "Banana", Price = 50 },
new Product { Id = 3, Name = "Apple", Price = 120 },
new Product { Id = 4, Name = "Cherry", Price = 200 }
};
```
Quero obter uma lista de produtos únicos apenas pela propriedade `Name`, de modo que restem, por exemplo, apenas "Apple", "Banana", "Cherry" (não importa qual dos duplicados da Apple permaneça — o primeiro ou o último).
O método `Distinct()` por padrão compara objetos por referência, e não por propriedade. Tentei sobrescrever `Equals` e `GetHashCode`,
No answers yet.
Faça login para deixar uma resposta
Blogs
Clean Code em PHP: princípios de escrita de código limpo com exemplos
Refatoração de código legado em Kotlin: guia passo a passo
Padrões Arquiteturais em PHP: do caos ao clean code
Constantes em Kotlin: como criar corretamente? Guia completo