0Pricing
C# Academy · Aula

Intervalos com matrizes e strings

Extraia fatias de matrizes, spans e substrings.

Intervalos com matrizes e strings é uma aula grátis de C# Academy no CoddyKit. Esta é a aula 3 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de C# Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de C# Academy inclui 4 aulas no total.

Fatiamento de matrizes

O uso mais comum dos intervalos é fatiar matrizes. array[1..3] retorna uma nova matriz contendo os elementos selecionados.

using System;

int[] data = { 10, 20, 30, 40, 50 };
int[] middle = data[1..3];
Console.WriteLine(string.Join(",", middle)); // 20,30

Fatias de matrizes são cópias

No caso de matrizes, uma fatia de intervalo aloca uma nova matriz e copia os elementos. Alterar a fatia não afeta a original.

using System;

int[] original = { 1, 2, 3, 4 };
int[] slice = original[0..2];
slice[0] = 99;
Console.WriteLine(original[0]); // 1 (unchanged)
Console.WriteLine(slice[0]);    // 99

Subcadeias por meio de Range

O indexador de string aceita Range, fornecendo subcadeias sem chamar Substring com deslocamentos e comprimentos.

using System;

string text = "Hello, World";
string hello = text[0..5];
Console.WriteLine(hello); // Hello

Fatias de cadeias a partir do fim

Combine intervalos com ^ para obter o final de uma cadeia de caracteres, como uma extensão de arquivo.

using System;

string file = "report.csv";
string ext = file[^3..];
Console.WriteLine(ext); // csv

Um único caractere com Index

Indexar uma cadeia de caracteres com um único Index retorna um char. Use ^1 para o caractere final.

using System;

string s = "Coddy";
char last = s[^1];
Console.WriteLine(last); // y

Removendo o primeiro ou o último

Intervalos abertos tornam trivial remover um elemento: ..^1 remove o último, 1.. remove o primeiro.

using System;

string quoted = "[value]";
string inner = quoted[1..^1];
Console.WriteLine(inner); // value

Dividindo uma cadeia de caracteres em partes

Você pode dividir texto em uma posição conhecida usando duas fatias de intervalo.

using System;

string code = "2026-05-30";
string year = code[..4];
string month = code[5..7];
string day = code[8..];
Console.WriteLine(year + " / " + month + " / " + day); // 2026 / 05 / 30

Segmentos de memória para fatiamento sem cópia

Se quiser uma fatia sem alocação, use AsSpan(). Uma fatia de memória é uma janela sobre a memória original, não uma cópia.

using System;

ReadOnlySpan<char> span = "Hello, World".AsSpan();
ReadOnlySpan<char> word = span[7..];
Console.WriteLine(word.ToString()); // World

Intervalos em laços

Você pode percorrer diretamente uma matriz fatiada com um laço para cada elemento.

using System;

int[] data = { 2, 4, 6, 8, 10 };
foreach (int n in data[1..4])
    Console.Write(n + " "); // 4 6 8
Console.WriteLine();

Os limites são verificados

Fatias fora dos limites geram ArgumentOutOfRangeException, para que leituras acidentais além do fim falhem imediatamente, em vez de corromper os dados.

using System;

int[] d = { 1, 2, 3 };
try { var _ = d[1..10]; }
catch (ArgumentOutOfRangeException) { Console.WriteLine("slice out of bounds"); }

Um analisador prático

Aqui está um pequeno analisador que extrai um nome e um domínio de um e-mail usando intervalos e IndexOf.

using System;

string email = "ada@coddy.dev";
int at = email.IndexOf('@');
string user = email[..at];
string domain = email[(at + 1)..];
Console.WriteLine(user + " | " + domain); // ada | coddy.dev

Verificação rápida

Verifique seu domínio do fatiamento de matrizes e cadeias de caracteres.

Recapitulação

Você aprendeu como os intervalos se aplicam a matrizes e cadeias de caracteres.

  • array[1..3] retorna uma nova matriz com uma cópia.
  • string[a..b] retorna uma subcadeia; um único Index retorna um char.
  • ..^1 e 1.. removem um elemento.
  • AsSpan() fatia sem alocar.

Perguntas Frequentes

A aula “Intervalos com matrizes e strings” é grátis?

Sim — o texto completo de “Intervalos com matrizes e strings” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de C# Academy, atualize para CoddyKit PRO. O curso de C# Academy inclui 4 aulas no total.

O que vou aprender em “Intervalos com matrizes e strings”?

Extraia fatias de matrizes, spans e substrings. Você pratica C# Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar C# Academy?

Nenhuma experiência prévia é necessária. C# Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 3 de 4.

Quanto tempo leva a aula “Intervalos com matrizes e strings”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de C# Academy?

Sim. Cada aula de C# Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. O tipo Index e o operador ^
  2. O tipo Range e o operador ..
  3. Intervalos com matrizes e strings
  4. Tipos personalizados compatíveis com intervalos
← Voltar para C# Academy