Stack with Examples in C#


The Stack class in C# represents a simple last-in-first-out (LIFO) non-generic collection of objects.

Following are the properties of the Stack class −

Sr.NoProperty & Description
1Count
Gets the number of elements contained in the Stack.
2IsSynchronized
Gets a value indicating whether access to the Stack is synchronized (thread safe).
3SyncRoot
Gets an object that can be used to synchronize access to the Stack.

Following are some of the methods of the Stack class −

Sr.NoProperty & Description
1Clear()
Removes all objects from the Stack.
2Clone()
Creates a shallow copy of the Stack.
3Contains(Object)
 whether an element is in the Stack.
4CopyTo(Array, Int32)
Copies the Stack to an existing one-dimensional Array, starting at the specified array index.
5Equals(Object)
Determines whether the specified object is equal to the current object.
6GetEnumerator()
Returns an IEnumerator for the Stack.
7GetHashCode()
Serves as the default hash function. (Inherited from Object)
8GetType()
Gets the Type of the current instance.
9Peek()
Returns the object at the top of the Stack without removing it.
10Pop()
Removes and returns the object at the top of the Stack
11Push(Object)
Inserts an object at the top of the Stack.

Example

Let us now see some of the examples −

To get object at the top of the Stack, the code is as follows −

 Live Demo

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());
   }
}

Output

This will produce the following output −

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

To check if a Stack has an elements, use the C# Contains() method. Following is the code −

Example

 Live Demo

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));
   }
}

Output

This will produce the following output −

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

Updated on: 11-Dec-2019

149 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements