Condividi tramite


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

Stack

System.Collections.Generic.Stack<T>

Queue

System.Collections.Generic.Queue<T>

ICollection

System.Collections.Generic.ICollection<T>

ConcurrentStack<T>

ConcurrentQueue<T>

Concetti

Tipi di insieme comunemente utilizzati