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,5Una 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 0Reemplazar 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); // TrueColecciones 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]); // 3Expresiones 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,3Nota 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 2Trabajar 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); // 10Pasar 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])); // 12Ventajas 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]); // FriDevolver 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,11Comprobació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
- Sintaxis de expresiones de colección
- El elemento spread
- Tipado de colecciones según el destino
- Constructores de colecciones