Novidades do .NET 6: melhorias em LINQ - UnionBy e IntersectBy
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: