位置:首頁 > 高級語言 > C#教學 > C# Stack類

C# Stack類

它代表了後進先出集合對象。當需要一個後進先出項目的存取使用它。當在列表中添加一個項目,它被稱為壓入項,當刪除它,它被稱為彈出項。

Stack類的方法和屬性

下表列出了一些Stack類的常用屬性:

屬性 描述
Count 獲取包含在堆棧的元素數

下表列出了一些Stack類的常用方法:

S.N 方法名稱及用途
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