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,30Fatias 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]); // 99Subcadeias 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); // HelloFatias 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); // csvUm ú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); // yRemovendo 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); // valueDividindo 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 / 30Segmentos 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()); // WorldIntervalos 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.devVerificaçã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 únicoIndexretorna umchar...^1e1..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
- O tipo Index e o operador ^
- O tipo Range e o operador ..
- Intervalos com matrizes e strings
- Tipos personalizados compatíveis com intervalos