Освоение C# Stack: Push, Pop и практические примеры
Что такое стек (Stack) в C#?
Стек — коллекция, следующая принципу Last-In, First-Out (LIFO) (последним пришёл — первым ушёл). Представьте стопку книг: можно снять только верхнюю. Та же логика применяется к классу .NET Stack — элементы добавляются на вершину через Push и удаляются с вершины через Pop.
Объявление стека
Инстанцируйте стек с ключевым словом new и присвойте переменной.
Stack st = new Stack();
Добавление элементов — Push
Метод Push помещает новый элемент на вершину стека.
st.Push(1);
Удаление элементов — Pop
Метод Pop удаляет и возвращает верхний элемент.
var top = st.Pop();
Другие частые операции
- Count — получает количество элементов в стеке.
int total = st.Count;
- Contains — проверяет, существует ли конкретное значение.
bool hasThree = st.Contains(3);
Практический пример 1: Использование Push, Count и Contains
Ниже приведено консольное приложение, демонстрирующее создание стека, вставку элементов, перечисление и базовые запросы.

using System;
using System.Collections;
namespace DemoApplication {
class Program {
static void Main(string[] args) {
// 1. Создаём новый стек
Stack st = new Stack();
// 2. Добавляем три целых числа
st.Push(1);
st.Push(2);
st.Push(3);
// 3. Перечисляем стек — обратите внимание на порядок LIFO
foreach (Object obj in st) {
Console.WriteLine(obj);
}
// 4. Выводим общее количество
Console.WriteLine($"\nNumber of elements: {st.Count}");
// 5. Проверяем, содержит ли стек значение 3
Console.WriteLine($"Does stack contain 3? {st.Contains(3)}");
Console.ReadKey();
}
}
}
Пояснение
- Объявляем
Stackс именемst. - Три целых числа добавляются через Push; последнее добавленное (3) становится верхним.
foreachперечисляет стек сверху вниз, выводя 3, 2, 1.Countвозвращает 3, подтверждая три элемента.Contains(3)возвращаетtrue, доказывая наличие 3.
Запуск программы даёт следующий вывод:

Практический пример 2: Удаление верхнего элемента с Pop
Здесь краткая иллюстрация работы метода Pop.

using System;
using System.Collections;
namespace DemoApplication {
class Program {
static void Main(string[] args) {
Stack st = new Stack();
st.Push(1);
st.Push(2);
st.Push(3);
// Удаляем верхний элемент (3)
st.Pop();
foreach (Object obj in st) {
Console.WriteLine(obj);
}
Console.ReadKey();
}
}
}
Пояснение
- После добавления 1, 2 и 3 вершина стека — 3.
- Вызов
Pop()удаляет 3, оставляя 2 и 1. - Перечисление печатает 2, затем 1.
Вывод программы:

Ключевые выводы
Stackработает по принципу LIFO.- Используйте
Pushдля добавления иPopдля удаления верхнего элемента. - Дополнительные помощники:
Countдля размера,Containsдля проверки принадлежности.
Язык C
- Выражения, операторы и блоки в C#: подробное руководство с примерами
- Цикл do-while в C++: синтаксис, примеры и вложенные циклы
- Указатели в C++: концепции, примеры и практические применения
- Тип данных char в C++: объявление, ASCII и методы преобразования
- Перегрузка операторов в C++: практическое руководство с примерами кода
- Функции в C++: подробное объяснение с практическими примерами кода
- Коллекции в C#: практическое руководство с реальными примерами
- Мастерство метода str.count() в Python: как подсчитывать символы и подстроки с примерами
- Функция round() в Python: подробное объяснение с практическими примерами
- Освоение функции map() в Python: синтаксис, примеры и лучшие практики