0Pricing
C# Academy · Lección

Rangos con arrays y cadenas

Obtenga segmentos de arrays, spans y subcadenas.

Rangos con arrays y cadenas es una lección gratuita de C# Academy en CoddyKit. Esta es la lección 3 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de C# Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de C# Academy incluye 4 lecciones en total.

Segmentación de arrays

El uso más habitual de los rangos es segmentar arrays. array[1..3] devuelve un array nuevo que contiene los elementos seleccionados.

using System;

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

Los segmentos de arrays son copias

En los arrays, un segmento obtenido mediante un rango reserva un array nuevo y copia los elementos. Modificar el segmento no afecta al 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

Subcadenas mediante Range

El indexador de string admite Range, por lo que puede obtener subcadenas sin llamar a Substring con desplazamientos y longitudes.

using System;

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

Segmentos de cadenas desde el final

Combine rangos con ^ para obtener la parte final de una cadena, como una extensión de archivo.

using System;

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

Un solo carácter con Index

Indexar una cadena con un solo Index devuelve un char. Use ^1 para obtener el carácter final.

using System;

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

Eliminar el primer o el último elemento

Los rangos abiertos permiten eliminar un elemento fácilmente: ..^1 omite el último y 1.. omite el primero.

using System;

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

Dividir una cadena en partes

Puede dividir texto en una posición conocida mediante dos segmentos obtenidos con rangos.

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

Spans para segmentación sin copias

Si desea un segmento sin reservar memoria, use AsSpan(). Un segmento de un span es una ventana sobre la memoria original, no una copia.

using System;

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

Rangos en bucles

Puede iterar directamente sobre un array segmentado mediante foreach.

using System;

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

Los límites se comprueban

Los segmentos fuera de rango producen ArgumentOutOfRangeException, de modo que las lecturas excesivas accidentales fallan rápidamente en lugar de dañar los datos.

using System;

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

Un analizador práctico

Aquí tiene un pequeño analizador que extrae un nombre y un dominio de un correo electrónico mediante rangos 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

Comprobación rápida

Compruebe su dominio de la segmentación mediante rangos en arrays y cadenas.

Resumen

Ha aprendido cómo se aplican los rangos a arrays y cadenas.

  • array[1..3] devuelve un array nuevo con los elementos copiados.
  • string[a..b] devuelve una subcadena; un solo Index devuelve un char.
  • ..^1 y 1.. eliminan un elemento.
  • AsSpan() permite segmentar sin reservar memoria.

Preguntas frecuentes

¿La lección «Rangos con arrays y cadenas» es gratis?

Sí — el texto completo de «Rangos con arrays y cadenas» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de C# Academy, actualiza a CoddyKit PRO. El curso de C# Academy incluye 4 lecciones en total.

¿Qué aprenderé en «Rangos con arrays y cadenas»?

Obtenga segmentos de arrays, spans y subcadenas. Practicas C# Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar C# Academy?

No se requiere experiencia previa. C# Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 3 de 4.

¿Cuánto tiempo toma la lección «Rangos con arrays y cadenas»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de C# Academy?

Sí. Cada lección de C# Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. El tipo Index y el operador ^
  2. El tipo Range y el operador ..
  3. Rangos con arrays y cadenas
  4. Tipos personalizados compatibles con rangos
← Volver a C# Academy