与C#中的示例堆叠

C#中的Stack类表示对象的简单后进先出(LIFO)非通用集合。

以下是Stack类的属性-

序号属性和说明
1个Count
Gets the number of elements contained in the Stack.
2IsSynchronized
获取一个值,该值指示对堆栈的访问是否同步(线程安全)。
3SyncRoot
Gets an object that can be used to synchronize access to the Stack.

以下是Stack类的一些方法-

序号属性和说明
1个Clear()
从堆栈中删除所有对象。
2Clone()
Creates a shallow copy of the Stack.
3包含(Object)
 元素是否在堆栈中。
4CopyTo(Array, Int32)
Copies the Stack to an existing one-dimensional Array, starting at the specified array index.
5Equals(Object)
确定指定的对象是否等于当前的对象。
6GetEnumerator()
Returns an IEnumerator for the Stack.
7GetHashCode()
用作默认哈希函数。(继承自Object)
8GetType()
Gets the Type of the current instance.
9Peek()
返回堆栈顶部的对象,但不删除它。
10Pop()
Removes and returns the object at the top of the Stack
11Push(Object)
在堆栈顶部插入一个对象。

示例

现在让我们看一些示例-

为了使对象位于堆栈的顶部,代码如下-

using System;
using System.Collections.Generic;
public class Demo {
   public static void Main() {
      Stack<string> stack = new Stack<string>();
      stack.Push("A");
      stack.Push("B");
      stack.Push("C");
      stack.Push("D");
      stack.Push("E");
      stack.Push("F");
      stack.Push("G");
      stack.Push("H");
      stack.Push("I");
      stack.Push("J");
      Console.WriteLine("Count of elements = "+stack.Count);
      Console.WriteLine("Element at the top of stack = " + stack.Peek());
   }
}

输出结果

这将产生以下输出-

Count of elements = 10
Element at the top of stack = J
Count of elements = 10

若要检查Stack是否具有元素,请使用C#Contains()方法。以下是代码-

示例

using System;
using System.Collections.Generic;
public class Demo {
   public static void Main() {
      Stack<int> stack = new Stack<int>();
      stack.Push(100);
      stack.Push(150);
      stack.Push(175);
      stack.Push(200);
      stack.Push(225);
      stack.Push(250);
      stack.Push(300);
      stack.Push(400);
      stack.Push(450);
      stack.Push(500);
      Console.WriteLine("Elements in the Stack:");      
      foreach(var val in stack) {
         Console.WriteLine(val);
      }
      Console.WriteLine("Count of elements in the Stack = "+stack.Count);
      Console.WriteLine("Does Stack has the element 400?= "+stack.Contains(400));
   }
}

输出结果

这将产生以下输出-

Elements in the Stack:
500
450
400
300
250
225
200
175
150
100
Count of elements in the Stack = 10
Does Stack has the element40400?= False