Il namespace
System.Collection è ricco di classi che ci permettono di memorizzare i valori così come prima facevamo utilizzando gli
array. Abbiamo già visto l'
ArrayList e l'
HashTable che ci permettono di salvare i nostri oggetti in base a alle nostre esigenze, in questo articolo vedremo l'utilizzo della classe
Stack.
La classe
Stack ci permette di gestire i nostri oggetti con un tipico utilizzo della politca
LIFO (Last In First Out) ovvero l'ultimo oggetto che viene inserito nella Collection è anche il primo ad uscire.
Tramite questo immagine si capisce meglio:
Come si può vedere "Ester" è l'ultimo nome inserito ma è il primo che uscirà dalla lista.
La classe
Stack utilizza principalmente due metodi:
- Push- PopIl metodo
Push serve per inserire gli oggetti nello stack mentre
Pop serve per recuperare l'ultimo oggetto inserito e rimuoverlo direttamente dalla struttura.
C#//creo lo stack
Stack _stack = new Stack();
//inserisco oggetti
_stack.Push("Marco");
_stack.Push("David");
_stack.Push("Lorenzo");
_stack.Push("Teo");
_stack.Push("Giovanni");
_stack.Push("Ester");
while (_stack.Count > 0)
{
//recupero e rimuovo gli oggetti castandoli a string
Console.WriteLine("The next value is:{0}", (string)_stack.Pop());
}
Come si vede inserisco i nomi tramite il metodo
Push e poi tramite il metodo
Pop recupero e tolgo dallo stack gli oggetti.
Se si vuole recuperare l'ultimo oggetto inserito senza rimuoverlo dallo
Stack si deve utilizzare il metodo
Peek.
Conclusione
La classe
Stack è molto utile in quei casi in cui bisogna memorizzare oggetti che devono avere un certo ordine e soprattutto se si deve recuperare l'ultimo oggetto inserito. Nel caso di un'implementazione di una coda
LIFO la classe
Stack è il candidato ideale.
Questa classe evidenzia ancor di più le molteplici risorse del namespace
System.Collection che è un mattone sicuramente importante che sta alla base dell'intera architettura del
.NET Framework.