Stack.Push() Method in C#

The Stack.Push() method in C# is used to insert an object at the top of the Stack. This method follows the Last In, First Out (LIFO) principle, where the most recently pushed element appears first when iterating through the stack.

Syntax

The syntax is as follows −

public virtual void Push (object ob);

Parameters

ob − The object to push onto the stack. It can be null.

Return Value

This method does not return any value. It is a void method.

Stack.Push() - LIFO Structure Push("C") Push("B") Push("A") TOP Last pushed item ("C") is at the top Iteration order: C, B, A

Using Stack.Push() with Integers

using System;
using System.Collections;

public class Demo {
   public static void Main() {
      Stack stack = new Stack();
      stack.Push(150);
      stack.Push(300);
      stack.Push(500);
      stack.Push(750);
      stack.Push(1000);
      stack.Push(1250);
      stack.Push(1500);
      stack.Push(2000);
      stack.Push(2500);
      Console.WriteLine("Stack elements...");
      foreach(int val in stack) {
         Console.WriteLine(val);
      }
      Console.WriteLine("Count of elements = " + stack.Count);
      stack.Push(3000);
      stack.Push(3500);
      stack.Push(4000);
      Console.WriteLine("\nStack elements...updated");
      foreach(int val in stack) {
         Console.WriteLine(val);
      }
      Console.WriteLine("\nCount of elements (updated) = " + stack.Count);
      Stack stack2 = (Stack)stack.Clone();
      Console.WriteLine("\nStack elements...cloned");
      foreach(int val in stack2) {
         Console.WriteLine(val);
      }
      Console.Write("Count of elements in cloned stack(updated) = " + stack2.Count);
   }
}

The output of the above code is −

Stack elements...
2500
2000
1500
1250
1000
750
500
300
150
Count of elements = 9

Stack elements...updated
4000
3500
3000
2500
2000
1500
1250
1000
750
500
300
150
Count of elements (updated) = 12

Stack elements...cloned
4000
3500
3000
2500
2000
1500
1250
1000
750
500
300
150
Count of elements in cloned stack(updated) = 12

Using Stack.Push() with Strings

using System;
using System.Collections;

public class Demo {
   public static void Main() {
      Stack stack = new Stack();
      stack.Push("Inspiron");
      stack.Push("Alienware");
      stack.Push("Projectors");
      stack.Push("Monitors");
      stack.Push("XPS");
      stack.Push("Laptop");
      stack.Push("Notebook");
      Console.WriteLine("Stack elements...");
      foreach(string val in stack) {
         Console.WriteLine(val);
      }
      Console.WriteLine("Count of elements = " + stack.Count);
      stack.Push("Ultrabook");
      stack.Push("Cameras");
      stack.Push("Keyboards");
      Console.WriteLine("\nStack elements...updated");
      foreach(string val in stack) {
         Console.WriteLine(val);
      }
      Console.WriteLine("\nCount of elements (updated) = " + stack.Count);
      stack.Clear();
      Console.Write("Count of elements (updated) = " + stack.Count);
   }
}

The output of the above code is −

Stack elements...
Notebook
Laptop
XPS
Monitors
Projectors
Alienware
Inspiron
Count of elements = 7

Stack elements...updated
Keyboards
Cameras
Ultrabook
Notebook
Laptop
XPS
Monitors
Projectors
Alienware
Inspiron
Count of elements (updated) = 10
Count of elements (updated) = 0

Using Stack.Push() with Mixed Data Types

using System;
using System.Collections;

public class Demo {
   public static void Main() {
      Stack stack = new Stack();
      stack.Push(100);
      stack.Push("Hello");
      stack.Push(3.14);
      stack.Push(true);
      stack.Push(null);
      
      Console.WriteLine("Stack elements (mixed types):");
      foreach(object val in stack) {
         if (val == null) {
            Console.WriteLine("null");
         } else {
            Console.WriteLine(val + " (" + val.GetType().Name + ")");
         }
      }
      Console.WriteLine("Count = " + stack.Count);
   }
}

The output of the above code is −

Stack elements (mixed types):
null
True (Boolean)
3.14 (Double)
Hello (String)
100 (Int32)
Count = 5

Conclusion

The Stack.Push() method adds elements to the top of a stack following LIFO order. It accepts any object type including null values, making it versatile for storing mixed data types. The most recently pushed element always appears first during iteration.

Updated on: 2026-03-17T07:04:36+05:30

783 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements