Métodos LINQ na prática – Parte #2

Continuando essa série sobre o LINQ e seus métodos, nesta parte 2 vou focar nos métodos de projeção de listas: Select e SelectMany.

Este é um artigo bem direto ao ponto por conta do conteúdo ser melhor absorvido com exemplos práticos de projeção de dados.


Select

Permite a projeção de items de uma coleção em um novo formato. Por exemplo, é bastante utilizado para obter uma lista de objetos View Model (modelos de saída) a partir de uma coleção de objetos de domínio.

Dá para usar o AutoMapper para obter o mesmo resultado? Dá! Mas em alguns cenários o AutoMapper pode ficar consideravelmente mais complexo do que simplesmente utilizar o Select.

Mostrarei esse exemplo no código abaixo, começando pelas classes que vão ser mapeadas entre si através da projeção usando o método Select.

Com as classes definidas, basta utilizar o método Select na classe principal e realizar a projeção dos dados de Pessoa.


SelectMany

Método de projeção que permite agrupar propriedades de listas de objetos de uma lista em uma coleção única.

Um exemplo prático com certeza vai deixar as coisas mais claras. Considere uma coleção de objetos de tipo Pessoa, e que cada Pessoa pode ter múltiplos e-mails ou telefones de contato. Como seria possível agrupar todas informações em uma lista única?

Poderíamos iterar pela coleção de objetos Pessoa, e em seguida iterar em cada coleção de e-mails ou telefones de contato, adicionando em uma coleção única. O método SelectMany oferece uma maneira mais prática de fazer isso sem utilizar estruturas de repetição!

Abaixo está a classe Pessoa utilizada no exemplo.

E agora, o exemplo completo mostrando a junção das listas de diversos objetos de uma lista simulando um envio em lote com a classe EmailService.


Quer alavancar sua carreira como Desenvolvedor(a) .NET?

Opa, aqui é o Luis Felipe (LuisDev), criador do blog LuisDev.

Além de Desenvolvedor .NET Sênior, eu sou instrutor de mais de 700 alunos e também tenho dezenas de mentorados.

Conheça o com mais de 800 video-aulas sobre C# e desenvolvimento de APIs com ASP NET Core, Microsserviços com ASP NET Core, Arquitetura de Software, Computação em Nuvem, SQL, HTML, CSS e JavaScript, JavaScript Intermediário, TypeScript, Desenvolvimento Front-End com Angular, e Desenvolvimento Front-end com React. Diversos mini-cursos disponíveis aos alunos e atualizações gratuitas.

Suporte dedicado, e comunidade de centenas de alunos.

Completo e online, destinado a profissionais que querem dar seu próximo passo em sua carreira como desenvolvedores .NET.

Clique aqui para ter mais informações e garantir sua vaga


Conclusão

O método Select encontra seu espaço em diversas tarefas do dia a dia de um desenvolvedor. O SelectMany tem menos casos de uso, mas certamente se mostra bem útil em exemplos como o apresentado, e pelo qual já passei também.

Assim como no artigo anterior, é importante ressaltar: dominar o LINQ e seus métodos é algo muito importante para uma carreira de desenvolvedor .NET.