La .NET CONF 2024 acaba de terminar. Descubre las NOVEDADES de .NET 9 junto a los CAMBIOS que trae C# 13.
Puedes ver el contenido de este vídeo junto con su curso en el modo vídeo (similar a Udemy) si pulsas aquí.

El tipo Stack en C#

Para continuar con la serie de colecciones en C# vamos a ver el tipo stack dentro de c#.

 

 

1 - Qué es el tipo stack en C#?

El tipo Stack es una colección que almacena elementos de forma LIFO (last in first out), lo que quiere decir que el último elemento que ha entrado, va a ser el primero de la lista.

Es el opuesto al tipo queue que vimos el otro día. 

 

Para utilizarlo podemos utilizarlo con generics, utilizando stack<T> o sin generics el cual almacena un objeto, sinceramente yo siempre lo haría con generics:

stack c#

Como en las colas, podemos iterar como si fuera una lista, pero si quieres iterar, utiliza una lista.

 

 

2 - Crear un stack y añadir elementos en C#

Crear un stack es muy sencillo, únicamente lo instanciamos e incluimos los elementos con el método .push().

Stack<string> marcas = new Stack<string>();
marcas.Push("Audi");
marcas.Push("Opel");
marcas.Push("BMW");

 

 

3 - Recibir elementos de un stack

Para recibir un elemento, tenemos dos opciones:

  •  Pop() el cual nos devolverá el último elemento insertado en dicho stack, y lo remueve del mismo.
  •  Peek() el cual nos devuelve el elemento sin eliminarlo de la cola.
Console.WriteLine($"La última marca insertada es {marcas.Peek()}"); //BMW
Console.WriteLine($"La última marca insertada (otra vez) es {marcas.Pop()}"); //BMW
Console.WriteLine($"La penúltima marca insertada es {marcas.Pop()}"); //Opel

Si intentamos recibir un elemento pero el stack está vacío nos saltará una excepción `InvalidOperationException`

 

 

4 - Stack y colecciones en c#

Como las colas, Stack<T> está dentro de  System.Collections.Generic e implementala interfaz IEnumerable<T> la cual permite iterar.

foreach(string marca in marcas)
    Console.WriteLine(marca);

Pero como con las colas, si vas a iterar de forma “normal(inversa)” es mejor utilizar una lista.

 

También podemos convertir la cola a un array, diccionario, lista, limpiarla utilizando .Clear(), o incluso comprobar si un elemento está en el stack con .Contains(T).

 

 

Conclusión

En este post hemos visto cómo crear un stack en C#.

En este post hemos visto cómo operar un stack en C#. 


Uso del bloqueador de anuncios adblock

Hola!

Primero de todo bienvenido a la web de NetMentor donde podrás aprender programación en C# y .NET desde un nivel de principiante hasta más avanzado.


Yo entiendo que utilices un bloqueador de anuncios como AdBlock, Ublock o el propio navegador Brave. Pero te tengo que pedir por favor que desactives el bloqueador para esta web.


Intento personalmente no poner mucha publicidad, la justa para pagar el servidor y por supuesto que no sea intrusiva; Si pese a ello piensas que es intrusiva siempre me puedes escribir por privado o por Twitter a @NetMentorTW.


Si ya lo has desactivado, por favor recarga la página.


Un saludo y muchas gracias por tu colaboración

© copyright 2024 NetMentor | Todos los derechos reservados | RSS Feed

Buy me a coffee Invitame a un café