Novidades do .NET 6: melhorias em LINQ - Chunk e Zip

Renato Groffe
3 min readJun 20, 2021

No final de Maio (dias 25 a 27, terça a quinta) aconteceu a edição 2021 do Microsoft Build, a conferência anual da Microsoft para Desenvolvedores. Com diversos anúncios envolvendo a plataforma .NET, algumas das novidades estão listadas no post a seguir sobre o Preview 4 do .NET 6:

E tivemos ainda nesta última semana que passou (quinta, 17/06) o lançamento do Preview 5 do .NET 6:

Nos links a seguir estão artigos que produzi cobrindo algumas das últimas novidades do .NET 6 (desde o Preview 4):

Novidades do .NET 6: Compile-time logging source generation em ASP.NET Core

Novidades do .NET 6: melhorias em LINQ - ExceptBy e DistinctBy

Novidades do .NET 6: suporte a Hot Reload no Visual Studio 2019

Novidades do .NET 6: melhorias em LINQ - FirstOrDefault, LastOrDefault e SingleOrDefault

Novidades do .NET 6: DateOnly e TimeOnly structs

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

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

Aproveito esse espaço para um convite…

Dia 30/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

Entre as novas extensões incorporadas ao namespace System.Linq estão também:

  • O método Chunk, extensão que permite “fatiar” (slice) uma coleção em agrupamentos seguindo um tamanho especificado;
  • Uma nova sobrecarga para o método Zip, possibilitando agora combinar 3 Enumerables em um.

Na listagem a seguir temos um exemplo de utilização de Chunk:

Um array chamado paises e que conta com 12 itens será dividido neste caso em Enumerables de até 5 elementos; como resultado teremos 2 Enumerables com 5, além de um último Enumerable com 2 elementos:

Clique nesta imagem para visualizar com uma melhor resolução

Este exemplo foi disponibilizado no GitHub:

https://github.com/renatogroffe/DotNet6_Preview5-LINQ-Chunk_ConsoleApp

Já na próxima listagem temos um exemplo de utilização do método Zip, gerando uma nova coleção a partir dos arrays numeros, numerosRomanos e descricoes:

Cada item desta nova coleção será uma tupla formada pelos itens de cada um dos arrays anteriores:

Clique nesta imagem para visualizar com uma melhor resolução

Esse projeto também está no GitHub:

https://github.com/renatogroffe/DotNet6_Preview5-LINQ-Zip_ConsoleApp

--

--

Renato Groffe

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