Tipi di insieme Stack
La classe System.Collections.Stack e le classi System.Collections.Generic.Stack<T> e System.Collections.Concurrent.ConcurrentStack<T> sono classi di insiemi LIFO (Last-In, First-Out) che implementano l'interfaccia ICollection. Anche le classi generiche System.Collections.Generic.Stack<T> e System.Collections.Concurrent.ConcurrentStack<T> implementano l'interfaccia generica ICollection<T>.
Gli oggetti Stack e Queue sono utili se è necessario un archivio temporaneo per le informazioni, ad esempio quando si desidera eliminare un elemento dopo averne recuperato il valore. Utilizzare System.Collections.Queue se è necessario accedere alle informazioni nello stesso ordine con cui sono archiviate nell'insieme. Utilizzare System.Collections.Generic.Stack<T> se è necessario accedere alle informazioni nell'ordine inverso.
Utilizzare i tipi System.Collections.Concurrent.ConcurrentStack<T> e System.Collections.Concurrent.ConcurrentQueue<T> quando è necessario accedere contemporaneamente all'insieme da più thread.
L'oggetto System.Collections.Generic.Stack<T> viene in genere utilizzato quando si desidera conservare gli stati delle variabili durante le chiamate ad altre routine.
Su un oggetto System.Collections.Generic.Stack<T> e sui relativi elementi è possibile eseguire tre operazioni principali:
L'operazione Pushconsente di inserire un elemento nella parte superiore dell'oggetto Stack.
L'operazione Pop consente di rimuovere un elemento dalla parte superiore dell'oggetto Stack<T>.
L'operazione Peek restituisce un elemento che si trova nella parte superiore dell'oggetto Stack<T> senza tuttavia rimuoverlo dall'oggetto Stack<T>.
La classe System.Collections.Concurrent.ConcurrentStack<T> fornisce metodi TryPop e TryPopRange che restituiscono false (False in Visual Basic) se non è possibile estrarre il valore o i valori. I metodi TryPopRange e PushRange forniscono un inserimento e un'estrazione efficienti di più elementi in una sola operazione.
Vedere anche
Riferimenti
System.Collections.Generic.Stack<T>
System.Collections.Generic.Queue<T>
System.Collections.Generic.ICollection<T>