C# - 堆栈类



它表示对象的先进先出集合。当您需要先进先出的项目访问时,可以使用它。当您向列表中添加项目时,称为推送项目;当您将其移除时,称为弹出项目。

堆栈类的使用方法和属性

下表列出了堆栈类的一些常用属性

序号 属性和描述
1

Count

获取堆栈中包含的元素数量。

下表列出了堆栈类的一些常用方法

序号 方法和描述
1

public virtual void Clear();

移除堆栈中的所有元素。

2

public virtual bool Contains(object obj);

确定堆栈中是否存在元素。

3

public virtual object Peek();

返回堆栈顶部的对象,但不将其移除。

4

public virtual object Pop();

移除并返回堆栈顶部的对象。

5

public virtual void Push(object obj);

在堆栈顶部插入一个对象。

6

public virtual object[] ToArray();

将堆栈复制到一个新数组。

示例

以下示例演示了堆栈的使用:

using System;
using System.Collections;

namespace CollectionsApplication {
   class Program {
      static void Main(string[] args) {
         Stack st = new Stack();
         
         st.Push('A');
         st.Push('M');
         st.Push('G');
         st.Push('W');
         
         Console.WriteLine("Current stack: ");
         foreach (char c in st) {
            Console.Write(c + " ");
         }
         Console.WriteLine();
         
         st.Push('V');
         st.Push('H');
         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: 
W G M A
The next poppable value in stack: H
Current stack: 
H V W G M A
Removing values
Current stack: 
G M A
csharp_collections.htm
广告