它表示一个后进先出的对象集合。当您需要后进先出的容器时,可以使用Stack类。当在列表中添加项目时,叫作推送项目,当删除项目时,叫作弹出。
Stack类的方法和属性
下表列出了Stack类的一些常用属性:
| 属性 | 说明 |
|---|---|
| Count | 获取堆栈中包含的元素数量。 |
下表列出了Stack类的一些常用方法:
| 序号 | 方法 | 描述 |
|---|---|---|
| 1 | public virtual void Clear(); |
从堆栈中删除所有元素 |
| 2 | public virtual bool Contains(object obj); |
确定元素是否在堆栈(Stack)中。 |
| 3 | public virtual object Peek(); |
返回堆栈顶部的对象,但不删除它。 |
| 4 | public virtual object Pop(); |
删除并返回堆栈顶部的对象。 |
| 5 | public virtual void Push(object obj); |
在Stack的顶部插入一个对象。 |
| 6 | public virtual object[] ToArray(); |
将堆栈复制到一个新的数组。 |
例子
以下示例中演示了上述Stack的用法:
using System;
using System.Collections;
namespace CollectionsApplication
{
class Program
{
static void Main(string[] args)
{
Stack st = new Stack();
st.Push('I');
st.Push('A');
st.Push('B');
st.Push('I');
st.Push('I');
st.Push('Y');
Console.WriteLine("Current stack: ");
foreach (char c in st)
{
Console.Write(c + " ");
}
Console.WriteLine();
st.Push('Y');
st.Push('M');
Console.WriteLine("The next poppable value in stack: {0}", st.Peek());
Console.WriteLine("Current stack: ");
foreach (char c in st)
{
Console.Write(c + " ");
}
Console.WriteLine();
Console.WriteLine("Removing values ");
st.Pop();
st.Pop();
st.Pop();
Console.WriteLine("Current stack: ");
foreach (char c in st)
{
Console.Write(c + " ");
}
}
}
}
当上述代码被编译并执行时,它产生以下结果:
Current stack:
Y I I B A I
The next poppable value in stack: M
Current stack:
M Y Y I I B A I
Removing values
Current stack:
I I B A I
