Dominando Stack en C#: Push, Pop y Ejemplos Prácticos
¿Qué Es una Pila (Stack) en C#?
Una pila es una colección que sigue el principio Último en Entrar, Primero en Salir (LIFO). Piense en una pila de libros: solo se puede quitar el libro superior. La misma lógica se aplica a la clase Stack de .NET—los elementos se añaden arriba con Push y se quitan de arriba con Pop.
Declarar una Pila
Instancie una pila con la palabra clave new y asígnela a una variable.
Stack st = new Stack();
Añadir Elementos – Push
El método Push coloca un nuevo elemento en la cima de la pila.
st.Push(1);
Eliminar Elementos – Pop
El método Pop elimina y devuelve el elemento superior.
var tope = st.Pop();
Otras Operaciones Comunes
- Count – Recupera el número de items en la pila.
int total = st.Count;
- Contains – Comprueba si un valor específico existe.
bool tieneTres = st.Contains(3);
Ejemplo Práctico 1: Usando Push, Count y Contains
A continuación una aplicación de consola que demuestra creación de pila, inserción de elementos, enumeración y consultas básicas.

using System; using System.Collections; namespace DemoApplication { class Program { static void Main(string[] args) { // 1. Crear una nueva pila Stack st = new Stack(); // 2. Apilar tres enteros st.Push(1); st.Push(2); st.Push(3); // 3. Enumerar la pila – note el orden LIFO foreach (Object obj in st) { Console.WriteLine(obj); } // 4. Mostrar el total Console.WriteLine($"\nNúmero de elementos: {st.Count}"); // 5. Comprobar si la pila contiene el valor 3 Console.WriteLine($"¿La pila contiene 3? {st.Contains(3)}"); Console.ReadKey(); } } } Explicación
- Declaramos un
Stackllamadost. - Se apilan tres enteros; el último apilado (3) se convierte en el elemento superior.
- Usar
foreachenumera la pila de arriba a abajo, mostrando 3, 2, 1. Countdevuelve 3, confirmando tres items.Contains(3)devuelvetrue, probando que 3 está presente.
Ejecutar este programa produce la siguiente salida:

Ejemplo Práctico 2: Eliminar el Elemento Superior con Pop
Aquí una ilustración concisa del método Pop en acción.

using System; using System.Collections; namespace DemoApplication { class Program { static void Main(string[] args) { Stack st = new Stack(); st.Push(1); st.Push(2); st.Push(3); // Eliminar el elemento superior (3) st.Pop(); foreach (Object obj in st) { Console.WriteLine(obj); } Console.ReadKey(); } } } Explicación
- Tras apilar 1, 2 y 3, el tope de la pila es 3.
- Llamar a
Pop()elimina 3, dejando 2 y 1. - La enumeración imprime 2 seguido de 1.
Salida del programa:

Conclusiones Clave
- Un
Stackopera en LIFO. - Use
Pushpara añadir yPoppara eliminar el elemento superior. - Ayudas adicionales:
Countpara tamaño,Containspara comprobación de pertenencia.
Lenguaje C
- Expresiones, sentencias y bloques en C#: Guía completa con ejemplos prácticos
- Bucle do‑while en C++: Sintaxis, ejemplos prácticos y bucles anidados
- Dominando punteros en C++: Conceptos, ejemplos y aplicaciones prácticas
- Dominando el tipo de dato char en C++: Declaración, ASCII y técnicas de conversión
- Sobrecarga de operadores en C++: Guía práctica con ejemplos de código
- Funciones en C++ Explicadas con Ejemplos de Código Prácticos
- Dominando Colecciones en C#: Tutorial Práctico con Ejemplos del Mundo Real
- Domine str.count() en Python: Cómo Contar Caracteres y Subcadenas con Ejemplos
- Función round() en Python explicada con ejemplos prácticos
- Dominando la función map() de Python: sintaxis, ejemplos y mejores prácticas
- Python timeit(): medición de tiempo de ejecución con ejemplos prácticos