Dicas C# (linq) - Extrair lista distinta de lista de objetos complexos
Olá caros leitores,
Exemplo completo no final do post!
Link: https://dotnetfiddle.net/gh6IRc
O que veremos neste post:
Falaremos neste post sobre como obter, a partir de uma List de objetos completos com valores repetidos, uma nova lista distinta.
Cenário:
Imagine a Classe Tool :
public class Tool
{
public int Id { get; set; }
public int Number { get; set; }
public string Source { get; set; }
}
Agora vamos criar uma lista com valores repetidos:
var tools = new List<Tool>()
{
new Tool {Id=1, Price=100, Source="source1"},
new Tool {Id=2, Price=200, Source="source2"},
new Tool {Id=3, Price=300, Source="source3"},
new Tool {Id=1, Price=100, Source="source1"},
new Tool {Id=2, Price=200, Source="source2"}
};
Nosso objetivo aqui é obter uma nova lista retirando as repetições:
Retorno esperado:
Price: 100| Source: source1 | ID: 1
Price: 200| Source: source2 | ID: 2
Price: 300| Source: source3 | ID: 3
Com linq e 4 linhas de código podemos fazer serviço sem stresse:
List<Tool> distinctTool = tools.Where(x => x.Id > 0)
.GroupBy(x => x.Id)
.Select(group => group.First())
.ToList();
O código acima nos retorna a lista desejada!
Abaixo vc confere o código final:
Comentários
Postar um comentário