0Pricing
C# Academy · Lección

Sintaxis de expresiones de colección

Inicialice arrays, listas y spans de manera uniforme.

Sintaxis de expresiones de colección es una lección gratuita de C# Academy en CoddyKit. Esta es la lección 1 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.

Expresiones de colecciones (C# 12)

C# 12 introduce las expresiones de colecciones: una única sintaxis de corchetes para crear arrays, listas, spans y otros tipos. En lugar de new int[] { 1, 2, 3 }, basta con escribir [1, 2, 3].

using System;

int[] numbers = [1, 2, 3, 4, 5];
Console.WriteLine(string.Join(",", numbers)); // 1,2,3,4,5

Una sintaxis, muchos destinos

El mismo literal [...] funciona tanto si el destino es un array como si es un List<T> o un Span<T>. El compilador elige la construcción adecuada.

using System;
using System.Collections.Generic;

int[] arr = [1, 2, 3];
List<int> list = [4, 5, 6];
Span<int> span = [7, 8, 9];
Console.WriteLine(arr.Length + " " + list.Count + " " + span.Length);

Colecciones vacías

Una expresión de colección vacía es simplemente []. Es más clara que Array.Empty<T>() o new List<T>() y obtiene automáticamente el tipo del destino.

using System;
using System.Collections.Generic;

int[] empty = [];
List<string> names = [];
Console.WriteLine(empty.Length + " " + names.Count); // 0 0

Reemplazar inicializadores verbosos

Las expresiones de colección eliminan la complejidad sintáctica de la sintaxis de inicializadores anterior. Compare las dos formas siguientes.

using System;
using System.Collections.Generic;

// old
List<int> oldWay = new List<int> { 1, 2, 3 };
// new
List<int> newWay = [1, 2, 3];
Console.WriteLine(oldWay.Count == newWay.Count); // True

Colecciones anidadas

Puede anidar expresiones de colección para crear matrices escalonadas o listas de listas.

using System;

int[][] grid = [[1, 2], [3, 4], [5, 6]];
Console.WriteLine(grid[1][0]); // 3

Expresiones como elementos

Los elementos pueden ser cualquier expresión, incluidas variables, llamadas a métodos y operaciones aritméticas.

using System;

int x = 10;
int[] values = [x, x * 2, x + 5, Math.Abs(-3)];
Console.WriteLine(string.Join(",", values)); // 10,20,15,3

Nota sobre matrices multidimensionales

Las expresiones de colección crean matrices escalonadas (int[][]), no matrices rectangulares (int[,]). Las matrices rectangulares siguen utilizando su propia sintaxis.

using System;

int[][] jagged = [[1, 2, 3], [4, 5]];
Console.WriteLine(jagged[0].Length + " " + jagged[1].Length); // 3 2

Trabajar con Span

Como las expresiones de colección pueden tener como destino Span<T> y ReadOnlySpan<T>, el compilador puede usar asignación en la pila y evitar asignaciones en el montón para datos de corta duración.

using System;

ReadOnlySpan<int> stackData = [1, 2, 3, 4];
int total = 0;
foreach (int n in stackData) total += n;
Console.WriteLine(total); // 10

Pasar colecciones a métodos

Cuando el tipo de un parámetro es una colección, puede pasar directamente una expresión de colección en el sitio de la llamada.

using System;

static int Sum(int[] xs) {
    int t = 0;
    foreach (int x in xs) t += x;
    return t;
}

Console.WriteLine(Sum([2, 4, 6])); // 12

Ventajas de la legibilidad

Las expresiones de colección resultan especialmente útiles en código con muchos datos, como tablas de configuración o datos de prueba, donde los corchetes mantienen la atención en los valores.

using System;

string[] days = ["Mon", "Tue", "Wed", "Thu", "Fri"];
Console.WriteLine(days[^1]); // Fri

Devolver colecciones

Un método puede devolver una expresión de colección; el tipo de retorno guía su construcción.

using System;

static int[] Primes() => [2, 3, 5, 7, 11];

Console.WriteLine(string.Join(",", Primes())); // 2,3,5,7,11

Comprobación rápida

Compruebe su comprensión de los conceptos básicos de las expresiones de colección.

Resumen

Ha aprendido la sintaxis de expresiones de colección de C# 12.

  • [1, 2, 3] reemplaza a los inicializadores verbosos.
  • [] es una colección vacía.
  • Su tipo se determina según el destino: funcionan las matrices, las listas y los spans.
  • Los corchetes anidados crean matrices escalonadas.

Preguntas frecuentes

¿La lección «Sintaxis de expresiones de colección» es gratis?

Sí — el texto completo de «Sintaxis de expresiones de colección» 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 «Sintaxis de expresiones de colección»?

Inicialice arrays, listas y spans de manera uniforme. 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 1 de 4.

¿Cuánto tiempo toma la lección «Sintaxis de expresiones de colección»?

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. Sintaxis de expresiones de colección
  2. El elemento spread
  3. Tipado de colecciones según el destino
  4. Constructores de colecciones
← Volver a C# Academy