C# 8.0  -  Apresentando Indices e Ranges


Hoje vou apresentar com mais detalhes a nova sintaxe para Índices e Ranges na versão 8.0 da linguagem C#.

Temos muitas novidades na versão 8.0 da linguagem C# e eu já apresentei um resumo das principais neste artigo: C# 8.0 - As novidades da nova versão

Ranges (Intervalos) e índices fornecem uma sintaxe suscinta para especificar sub-intervalos em uma matriz, Span <T> ou ReadOnlySpan<T>, e, a versão 8.0 introduziu uma nova sintaxe para expressar um valor de intervalo. Por exemplo:

Assim com a nova versão podemos navegar em uma lista usando o indexador.

Para poder usar os novos recursos basta instalar a última versão do Visual Studio Community 2019 e criar um projeto do tipo Console Application para .NET Core:

Vamos iniciar com um código bem simples usando a nova sintaxe:

Executando o projeto teremos:

Agora temos mais flexibilidade para navegar em listas usando a nova sintaxe para índice e range.

O índice de cada elemento reforça o conceito de "desde o início" e "do final", e os intervalos são exclusivos do final do intervalo. O "começo" de todo o array é o primeiro elemento. O "final" de todo o array está além do último elemento.

Vejamos outro exemplo usando strings e a nova sintaxe para Range:

   

Executando o projeto teremos:

Para concluir e tornar ainda mais claro a sintaxe vejamos o exemplo a  seguir:

Executando o projeto teremos:

Assim temos que ter em mente a seguinte correspondência entre a numeração base e o índice:

Aguarde mais artigos sobre as novidades do C# 8.0.

"Para que os seus corações sejam consolados, e estejam unidos em amor, e enriquecidos da plenitude da inteligência, para conhecimento do mistério de Deus e Pai, e de Cristo, Em quem estão escondidos todos os tesouros da sabedoria e da ciência."
Colossenses 2:2,3

Referências:


José Carlos Macoratti