How to remove all elements from a stack in C#
The Stack<T> generic class in the System.Collections.Generic namespace provides the Clear() method, which can be used to remove all the elements of a stack in C#.
Syntax
public void Clear ();
Things to note
-
Other object references from elements of
Stack<T>are also released after theClear()method is called. -
The stack’s
Countproperty becomes0after theClear()method is called. -
This method does not change the capacity of the stack.
-
This method changes the state of the stack.
-
This is an O(n) operation, where is the count of elements.
Code
In the following code, we create a stack of strings.
First, we call the Push() method with the strings Asia, Africa, and Europe. This inserts these three strings onto the stack, with Europe at the top of the stack.
We display all the stack elements, and we can see that it has three elements in it.
We then call the Clear() method and print the count of the stack. We also display all elements of the stack. As we can observe in the output, the stack does not have any elements, and count is set to zero.
using System;using System.Collections.Generic;class StackClear{static void Main(){Stack<string> stack = new Stack<string>();stack.Push("Asia");stack.Push("Africa");stack.Push("Europe");Console.WriteLine("Current Stack Items: \n{0}\n", string.Join(",", stack.ToArray()));stack.Clear();Console.WriteLine("Stack Count Ater Clear(): {0}", stack.Count);Console.WriteLine("Stack Items After Clear():\n{0}", string.Join(",", stack.ToArray()));}}