Remove all objects from the Stack in C#

In C#, the Stack<T> class provides the Clear() method to remove all objects from the Stack. This method efficiently removes every element from the Stack, leaving it empty with a count of zero.

Syntax

Following is the syntax for removing all objects from a Stack −

stack.Clear();

Where stack is the instance of the Stack from which all elements need to be removed.

How It Works

The Clear()

Stack.Clear() Operation Before Clear() ["C"] ["B"] ["A"] Count: 3 Clear() After Clear() Empty Count: 0 All elements are removed and memory is released

Using Clear() with String Stack

Example

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");
        Console.WriteLine("Count of elements = "+stack.Count);
        Console.WriteLine("Elements in Stack...");
        foreach (string res in stack){
            Console.WriteLine(res);
        }
        stack.Clear();
        Console.Write("Count of elements (updated) = "+stack.Count);
    }
}

The output of the above code is −

Count of elements = 8
Elements in Stack...
H
G
F
E
D
C
B
A
Count of elements (updated) = 0

Using Clear() with Integer Stack

Example

using System;
using System.Collections.Generic;

public class Demo {
    public static void Main(){
        Stack<int> stack = new Stack<int>();
        stack.Push(10);
        stack.Push(20);
        stack.Push(30);
        stack.Push(40);
        stack.Push(50);
        stack.Push(60);
        stack.Push(70);
        stack.Push(80);
        stack.Push(90);
        stack.Push(100);
        Console.WriteLine("Count of elements = "+stack.Count);
        Console.WriteLine("Elements in Stack...");
        foreach (int res in stack){
            Console.WriteLine(res);
        }
        stack.Clear();
        Console.Write("Count of elements (updated) = "+stack.Count);
    }
}

The output of the above code is −

Count of elements = 10
Elements in Stack...
100
90
80
70
60
50
40
30
20
10
Count of elements (updated) = 0

Key Points

  • The Clear() method removes all elements in O(1) time complexity.

  • After calling Clear(), the Stack's Count property returns zero.

  • The method does not throw any exceptions, even if the Stack is already empty.

  • Memory used by the elements is eligible for garbage collection after clearing.

Conclusion

The Clear() method is the most efficient way to remove all objects from a Stack in C#. It immediately empties the Stack and sets its count to zero, making it ready for new elements to be pushed.

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

225 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements