C# para Unity · Sección 7

Colecciones para sistemas de juego

Elección entre arrays, List, Dictionary, Stack y Queue según orden, acceso, mutabilidad y costo de la operación dominante.

3
lecciones
3
ejercicios resueltos
CONTENIDO ORIGINAL

Avanza en orden. Cada lección está redactada para Palta es Cool, utiliza ejemplos propios y termina con una actividad cuya respuesta puedes desplegar.

ANTES DE EMPEZAR

Ubícate antes de avanzar

01 / PUNTO DE PARTIDA

Conviene haber comprendido POO, composición y objetos válidos.

02 / META OBSERVABLE

Al terminar deberías poder relacionar Arrays y listas con Diccionarios y resolver un caso nuevo.

03 / TIEMPO SUGERIDO

Reserva entre 35 y 55 minutos para lectura, ejemplos, tres comprobaciones y cierre.

04 / PREPARA EL LABORATORIO

Instala Unity Hub, una versión LTS compatible y un IDE con integración para C#. Conserva un proyecto de laboratorio separado.

Abrir la guía de herramientas →
Diagnóstico rápido: ¿cómo se relacionan Arrays y listas y Diccionarios? +

No necesitas acertar todavía. Escribe una hipótesis de dos líneas y compárala con tu respuesta al finalizar; si puedes corregirla y justificar el cambio, hubo aprendizaje.

Ruta guiada · 3 lecciones

Aprende el tema paso a paso

Elegirás cada colección por la operación dominante del sistema y aprenderás a proteger accesos, vacíos y modificaciones durante recorridos.

Al terminar podrás
  • Array fija el tamaño y List crece durante la ejecución
  • Dictionary conecta identificadores únicos con valores
  • Stack y Queue hacen visible qué elemento sigue
01
Secuencias

Array fija el tamaño y List crece durante la ejecución

Un array es adecuado para puntos conocidos; List<T> para inventarios u objetivos dinámicos. Ambas conservan orden e índices. Insertar o borrar en medio de una lista desplaza elementos y puede ser costoso.

01

Comprueba Length o Count antes de acceder.

02

Evita modificar la colección dentro de foreach.

03

No uses una lista cuando la pregunta principal es buscar por identificador.

Comprueba lo aprendido · 01

¿Cuándo elegirías un array aunque List parezca más flexible?

Mostrar respuesta +

Cuando el número de elementos es estable, se configura como conjunto fijo y la flexibilidad de agregar o quitar no representa una necesidad real.

02
Buscar por clave

Dictionary conecta identificadores únicos con valores

Dictionary<TKey,TValue> evita recorrer toda una lista cuando consultas por clave. TryGetValue expresa que la ausencia es posible. Agregar una clave duplicada y asumir que existe son fallos diferentes.

01

Define qué hace única y estable a la clave.

02

Usa TryGetValue para ausencias esperables.

03

No dependas del orden de recorrido como significado del sistema.

Comprueba lo aprendido · 02

¿Por qué una posición de lista suele ser una mala identidad persistente?

Mostrar respuesta +

Porque insertar, ordenar o eliminar cambia las posiciones. Un identificador estable mantiene su significado entre versiones y sesiones.

03
Orden de procesamiento

Stack y Queue hacen visible qué elemento sigue

Stack<T> implementa LIFO y sirve para deshacer o navegación anidada. Queue<T> implementa FIFO y representa turnos o solicitudes. Peek observa y Pop o Dequeue retiran; las operaciones requieren comprobar que haya elementos.

01

Stack: último en entrar, primero en salir.

02

Queue: primero en entrar, primero en salir.

03

Elige por semántica, no por familiaridad.

Comprueba lo aprendido · 03

¿Qué error conceptual habría al usar Stack para una fila de jugadores?

Mostrar respuesta +

El último jugador agregado actuaría primero, contradiciendo una fila justa de llegada. La estructura impondría LIFO en vez de FIFO.

Resumen de la sección

Tu recorrido en tres ideas

  1. Array fija el tamaño y List crece durante la ejecución
  2. Dictionary conecta identificadores únicos con valores
  3. Stack y Queue hacen visible qué elemento sigue
CIERRE DE LA SECCIÓN

Comprueba que puedes usarlo

Antes de continuar, revisa estos tropiezos frecuentes y resuelve un caso sin copiar los ejemplos.

ERROR 01

Usar List para toda necesidad aunque la operación principal sea buscar por clave o procesar una cola.

ERROR 02

Acceder a posiciones o retirar elementos sin comprobar el estado de la colección.

DESAFÍO INTEGRADOR

Ahora hazlo sin guía

Modela puntos de spawn, inventario, catálogo por ID, historial de deshacer y cola de turnos con la colección apropiada.

Mostrar pauta de corrección +
Una respuesta sólida:
  • Justifica cada estructura por orden y operación dominante.
  • Maneja ausencias, vacíos, duplicados y límites.
  • No depende accidentalmente del orden de Dictionary.