Класс Stack предназначен для хранения некоторых данных произвольного типа. Он находится в пространстве имен System.Collections.
Основной принцип действия этого класса - "первый вошел, последний вышел".
Вот пример использования этого класса:
// Создаем класс для добавления его экземпляров в стек.class DataClass
{
publicint a;
publicint b;
public DataClass(int a, int b)
{
this.a = a;
this.b = b;
}
publicoverridestring ToString()
{
return "a = " + a + ", b = " + b;
}
}
Теперь займемся непосредственно стеком.
// Добавляем данные в стек.
Stack st = new Stack();
DataClass q = new DataClass(2, 3);
st.Push(q);
q = new DataClass(10, 100);
st.Push(q);
// Смотрим последние добавленные данные (без удаления их из стека).
DataClass t = (DataClass)st.Peek();
Console.WriteLine(t);
Console.WriteLine("Count: " + st.Count);
Console.WriteLine();
// Извлекаем последние добавленные данные (с удалением их из стека).
t = (DataClass)st.Pop();
Console.WriteLine(t);
Console.WriteLine("Count: " + st.Count);
Console.WriteLine();
t = (DataClass)st.Pop();
Console.WriteLine(t);
Console.WriteLine("Count: " + st.Count);
Console.WriteLine();
Пример достаточно ясен из комментариев.
Класс Stack позволет обойти все свои элементы. Это можно сделать, например, вот так:
foreach (DataClass d in st)
{
Console.WriteLine(d.ToString());
}
Обратите внимание, на то, что тип данных в стеке не определен (вернее, в стеке хранятся данные типа Object). Поэтому мы везде вынуждены делать приведение типов.
Из других полезных методов и свойств следует отметить еще Clear (очищает весь стек), Contains (позволяет определить, содержит ли наш стек какой-нибудь элемент), ToArray (возвращает массив, состоящий из элементов стека).
PARKING.RU. Качественный ВИРТУАЛЬНЫЙ ХОСТИНГ на платформе Windows(r): поддержка NET, многофункциональная панель управления, аренда бизнес-приложений, сертифицированные специалисты. Управляемый ВЫДЕЛЕННЫЙ ХОСТИНГ на платформе Windows(r): производительные серверы, профессиональная поддержка, аренда ПО Microsoft(r), безопасность, гарантии. http://www.parking.ru