Novidades do .NET 6: melhorias em LINQ - UnionBy e IntersectBy

Renato Groffe
3 min readJun 2, 2021

--

Na semana passada (dias 25 a 27/Maio, terça a quinta) aconteceu a edição 2021 do Microsoft Build, a conferência anual da Microsoft para Desenvolvedores. Assim como já aconteceu em anos anteriores, foram diversos os anúncios envolvendo a plataforma .NET. O post a seguir no blog oficial do .NET aborda algumas dessas novidades:

Já publiquei inclusive neste blog 3 artigos cobrindo novidades que vieram com esta edição do Build, na qual foi disponibilizado o Preview 4 do .NET 6:

Novidades do .NET 6: HTTP Logging no ASP.NET Core

Novidades do .NET 6: melhorias em LINQ - MaxBy e MinBy

Novidades do .NET 6: Minimal APIs em ASP.NET Core

Novas funcionalidades para a manipulação de objetos com LINQ foram disponibilizadas com o Preview 4 do .NET 6, com extensões incluídas no namespace System.Linq.

Duas dessas novidades são os métodos:

  • UnionBy, em que os elementos de 2 coleções são combinados gerando um novo agrupamento;
  • IntersectBy, em que apenas os elementos presentes em 2 coleções são considerados. Um novo agrupamento será gerado somente com os itens em comum.

Em ambos os métodos poderemos definir como critério para unificação ou intersecção uma propriedade que faça parte dos objetos envolvidos, dispensando assim implementações baseadas na interface IEqualityComparer (requeridas por extensões LINQ mais antigas como Union e Intersect).

É o que demonstra a listagem a seguir, em que Nome foi empregado como critério nestas operações a partir de arrays com instâncias do tipo Cidade:

A imagem a seguir traz os resultados da execução desta aplicação, dispensando duplicidades no exemplo com UnionBy e levando em conta apenas itens em comum com IntersectBy:

Este exemplo foi disponibilizado também no GitHub:

https://github.com/renatogroffe/DotNet6_Preview4-LINQ-UnionBy-IntersectBy_ConsoleApp

E concluo este artigo com um convite…

Dia 28/06 (segunda) às 21:00 horário de Brasília — teremos mais um evento online e gratuito no canal Canal .NET.

Ao longo desta live abordarei dicas, truques e alternativas úteis para o desenvolvimento Back-End e de APIs REST com .NET 5, ASP.NET Core, Azure Functions. Ao longo da apresentação será coberto o uso de diferentes frameworks, serviços na nuvem, mensageria, bancos de dados e boas práticas de forma a facilitar e tornar mais dinâmica a implementação de soluções baseadas na plataforma .NET no seu dia a dia.

Teremos também algumas novidades do .NET 6 demonstradas na prática!

Para participar faça sua inscrição no link a seguir, a transmissão acontecerá via YouTube:

https://bit.ly/live-backend-dotnet-jun-2021

--

--

Renato Groffe
Renato Groffe

Written by Renato Groffe

Microsoft Most Valuable Professional (MVP), Multi-Plataform Technical Audience Contributor (MTAC), Software Engineer, Technical Writer and Speaker