Поделиться через


Типы коллекций Stack

Класс System.Collections.Stack и универсальные классы System.Collections.Generic.Stack<T> и System.Collections.Concurrent.ConcurrentStack<T> являются классами коллекции "последним пришел — первым вышел", реализующими интерфейс ICollection. Класс System.Collections.Generic.Stack<T> и универсальный класс System.Collections.Concurrent.ConcurrentStack<T> также реализуют универсальный интерфейс ICollection<T>.

Стеки и очереди полезны, когда требуется временное хранилище для данных, то есть когда элемент может быть удален после того, как его значение было получено. Объект System.Collections.Queue следует использовать, если доступ к данным требуется осуществлять в том же порядке, в каком они хранятся в коллекции. Объект System.Collections.Generic.Stack<T> следует использовать, если требуется осуществлять доступ к данным в обратном порядке.

Типы System.Collections.Concurrent.ConcurrentStack<T> и System.Collections.Concurrent.ConcurrentQueue<T> следует использовать, если необходим параллельный доступ к коллекции из нескольких потоков.

Класс System.Collections.Generic.Stack<T> часто используется для сохранения состояния переменной при вызове других процедур.

Три основные операции, которые могут быть применены к объекту System.Collections.Generic.Stack<T> и его элементам:

  • метод Push вставляет элемент вверху Stack;

  • метод Pop удаляет элемент из верха Stack<T>;

  • метод Peek возвращает самый верхний элемент Stack<T>, но не удаляет его из Stack<T>.

    Класс System.Collections.Concurrent.ConcurrentStack<T> предоставляет методы TryPop и TryPopRange, которые возвращают false (False в Visual Basic), если значение или значения не могут быть извлечены. Методы TryPopRange и PushRange эффективно помещают и извлекают несколько элементов за одну операцию.

См. также

Ссылки

Stack

System.Collections.Generic.Stack<T>

Queue

System.Collections.Generic.Queue<T>

ICollection

System.Collections.Generic.ICollection<T>

ConcurrentStack<T>

ConcurrentQueue<T>

Основные понятия

Часто используемые типы коллекций