DEV Community

Cover image for Revolucionando a Verificação de Coleções com Padrões de Lista no C# 11
Lincoln Quinan Junior
Lincoln Quinan Junior

Posted on

1 1 1 1 1

Revolucionando a Verificação de Coleções com Padrões de Lista no C# 11

Avançamos em nossa série exploratória sobre as inovações do C# 11 com um recurso que transforma radicalmente a maneira como interagimos com coleções: os padrões de lista. Esse novo recurso introduz uma sintaxe concisa e poderosa para a verificação de padrões em coleções, como listas e arrays, permitindo condições complexas de maneira elegante e legível.

O Que São Padrões de Lista?

Padrões de lista no C# 11 são uma extensão do sistema de padrões existente que permite inspecionar e deconstruir coleções com base em seus elementos. Essa funcionalidade simplifica a verificação de condições específicas dentro de uma coleção, como a presença de um conjunto de elementos em determinadas posições ou a estrutura geral da coleção.

Exemplo 1: Verificando o Primeiro e o Último Elemento

var numbers = new List<int> { 0, 1, 2, 3, 4, 5 };

if (numbers is [0, .., 5])
{
    Console.WriteLine("A lista começa com 0 e termina com 5.");
}
Enter fullscreen mode Exit fullscreen mode

Este exemplo demonstra como verificar facilmente se a lista começa com 0 e termina com 5, usando os padrões de lista para capturar essa estrutura específica.

Exemplo 2: Capturando Elementos Específicos

var values = new List<string> { "C#", "11", "Padrões", "de", "Lista" };

if (values is ["C#", "11", .. var middle, "Lista"])
{
    Console.WriteLine($"Elementos intermediários: {string.Join(", ", middle)}");
}
Enter fullscreen mode Exit fullscreen mode

Aqui, utilizamos padrões de lista para capturar todos os elementos intermediários entre "C#" e "Lista", demonstrando a flexibilidade dos padrões de lista em manipular e acessar partes específicas de uma coleção.

Exemplo 3: Desconstruindo uma Lista

var mix = new List<object> { "Primeiro", 2, 3.14, "Último" };

if (mix is [var first, .., var last])
{
    Console.WriteLine($"Primeiro: {first}, Último: {last}");
}
Enter fullscreen mode Exit fullscreen mode

Este exemplo mostra como os padrões de lista podem ser usados para desconstruir uma lista, capturando o primeiro e o último elemento, independentemente do tamanho da lista ou dos tipos de elemento.

Exemplo 4: Correspondência Complexa

var nestedList = new List<object> { new List<int> { 1, 2, 3 }, "C#", 11 };

if (nestedList is [List<int> { 1, 2, 3 }, .., 11])
{
    Console.WriteLine("A lista contém uma sublista [1, 2, 3] e termina com 11.");
}
Enter fullscreen mode Exit fullscreen mode

Este exemplo ilustra como padrões de lista podem ser usados para verificar estruturas mais complexas dentro de coleções, incluindo a presença de sublistas com elementos específicos.

Conclusão

Padrões de lista no C# 11 oferecem uma sintaxe rica e expressiva para a verificação e deconstrução de coleções, ampliando as possibilidades de manipulação de dados de forma eficiente e legível. Esse recurso facilita a escrita de condições complexas e a captura de elementos específicos dentro de coleções, promovendo um código mais claro e conciso.

À medida que exploramos mais profundamente as novidades do C# 11, fica evidente o compromisso contínuo em evoluir a linguagem de forma a atender às necessidades modernas de desenvolvimento. Os padrões de lista são apenas uma das muitas inovações que demonstram esse compromisso. Continue acompanhando nossa série para descobrir mais sobre as capacidades transformadoras do C# 11 e como elas podem enriquecer seus projetos de desenvolvimento.

Heroku

Build apps, not infrastructure.

Dealing with servers, hardware, and infrastructure can take up your valuable time. Discover the benefits of Heroku, the PaaS of choice for developers since 2007.

Visit Site

Top comments (0)

Billboard image

Create up to 10 Postgres Databases on Neon's free plan.

If you're starting a new project, Neon has got your databases covered. No credit cards. No trials. No getting in your way.

Try Neon for Free →

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay