Continuando nossa série de artigos com as novidades do C# 11, vulgo CSharp, o que está bem próximo de ser lançado, sendo previsto para o lançamento novas funcionalidades dentro da linguagem. Neste artigo irei demonstrar a funcionalidade List Patterns. Vale lembrar que, se não preparou seu ambiente de desenvolvimento ainda para as novas features do .NET
Continuando nossa série de artigos com as novidades do C# 11, vulgo CSharp, o que está bem próximo de ser lançado, sendo previsto para o lançamento novas funcionalidades dentro da linguagem.
Neste artigo irei demonstrar a funcionalidade List Patterns.
Vale lembrar que, se não preparou seu ambiente de desenvolvimento ainda para as novas features do .NET 7, recomendo que leia este artigo antes de iniciar.
Como mencionei anteriormente, estes itens estão ainda em uma versão prévia e é possível que alguns deles não cheguem à versão final do C# 11.
Porém, isto nos dá uma noção do que pode ser a próxima versão do C# e o que esperar.
List patterns no C# 11
Os list patterns ou padrões de lista no português, permitem a correspondência de padrões para elementos em uma matriz ou em uma lista. Temos várias opções aqui.
Ao definir explicitamente quais valores aparecem na ordem da matriz, a matriz terá que corresponder ao mesmo comprimento e ter a mesma sequência para retornar true.
public class ExemploListas
{
public bool Is_1_3_5(int[] numeros)
{
return numeros is [1, 3, 5];
}
}
var listaPadrao = new ListPatterns();
Console.WriteLine($"Is1_3_5 = {listaPadrao.Is_1_3_5(new int[] { 1, 3, 5 })}"); // vai retornar true
Se especificarmos um _, ele corresponde a um único elemento que pode ser qualquer valor. Veja:
public class ExemploListas
{
public bool Is_1_3_5(int[] numeros)
{
return numeros is [1, 3, 5];
}
}
var listaPadrao = new ListPatterns();
Console.WriteLine($"Is1___5 = {listaPadrao.Is_1_3_5(new int[] { 1, 9, 5 })}"); // vai retornar true
Ao especificar o .., ele corresponderá a zero ou mais elementos que podem ter qualquer comprimento.
public class ExemploListas
{
public bool Is_1_3_5(int[] numeros)
{
return numeros is [1, 3, 5];
}
}
var listaPadrao = new ListPatterns();
Console.WriteLine($"Is1_DotDot_5 = {listaPadrao.Is_1_3_5(new int[] { 1, 9, 3, 8, 5 })}"); // vai retornar true
Já escrevi anteriormente sobre as outras features que vêm com estas nova versão do C# 11 e disponibilizei todas, em ordem cornológica neste artigo.
Alguns exemplos você pode encontrar lá no GitHub deste site. Até a próxima!
Leave a Comment
Your email address will not be published. Required fields are marked with *