Novidades do C# 11: List Patterns
Novos releases da linguagem C# desde a versão 7.0 vêm sempre incorporando melhorias e novidades relacionadas o conceito de Pattern Matching. Com o C# 11 não foi diferente, havendo agora a possibilidade de utilizarmos a funcionalidade chamada de List Patterns para simplificar a manipulação de arrays e Lists:
- O pattern discard (_) pode ser utilizado para referenciar um único elemento de um array ou List;
- Já com o pattern range (..) podemos refenciar zero ou mais elementos;
- Existe ainda a possibilidade de usarmos o pattern var gerando um novo array ou List, em um processo de “fatiamento” (slice) de uma referência baseada nessas estruturas.
Podemos observar tais novidades na implementação a seguir, em que se definiu um tipo chamado Calendario:
- No método ObterEstacao temos a presença de diferentes intervalos de meses, empregando os operadores _ (discard) e .. (range);
- A operação AnalisarSequenciaMeses vai além, combinando o uso de _, .. e var para capturar diferentes intervalos de meses.
A próxima listagem traz vários exemplos de utilização dos métodos ObterEstacao e AnalisarSequenciaMeses de Calendario, explorando assim as diferentes possibilidades oferecidas por List Patterns:
Na imagem seguinte temos o resultado da execução deste exemplo com o Preview 5 do .NET 7:
Já nesta outra imagem a mesma implementação foi executada com o .NET 6:
As versões em .NET 6 e .NET 7 deste exemplo já foram disponibilizadas no GitHub:
E concluo este novo artigo com um convite…
Nesta segunda 27/06 às 21:00 — horário de Brasília — teremos mais um evento online e gratuito no canal Canal .NET.
Esta nova live trará dicas, truques e alternativas úteis para o desenvolvimento Back-End e de APIs REST com .NET 6, C#, ASP.NET Core e Azure Functions. Ao longo da apresentação será coberto o uso de diferentes frameworks, serviços na nuvem, mensageria 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 7 demonstradas na prática!
Para participar faça sua inscrição no link a seguir, a transmissão acontecerá via YouTube: