C# | Stack Class - GeeksforGeeks

20 Feb, 2019
Stack represents a last-in, first out collection of object. It is used when you need a last-in, first-out access to items. When you add an item in the list, it is called pushing the item and when you remove it, it is called popping the item. This class comes under System.Collections namespace.
Characteristics of Stack Class:
The capacity of a Stack is the number of elements the Stack can hold. As elements are added to a Stack, the capacity is automatically increased as required through reallocation.
If Count is less than the capacity of the stack, Push is an O(1) operation. If the capacity needs to be increased to accommodate the new element, Push becomes an O(n) operation, where n is Count. Pop is an O(1) operation.
Stack accepts null as a valid value and allows duplicate elements.
Example:
// C# code to create a Stackusing System;using System.Collections;class GFG {      // Driver code    public static void Main()    {          // Creating a Stack        Stack myStack = new Stack();          // Inserting the elements into the Stack        myStack.Push("1st Element");        myStack.Push("2nd Element");        myStack.Push("3rd Element");        myStack.Push("4th Element");        myStack.Push("5th Element");        myStack.Push("6th Element");          // Displaying the count of elements        // contained in the Stack        Console.Write("Total number of elements in the Stack are : ");          Console.WriteLine(myStack.Count);          // Displaying the top element of Stack        // without removing it from the Stack        Console.WriteLine("Element at the top is : " + myStack.Peek());          // Displaying the top element of Stack        // without removing it from the Stack        Console.WriteLine("Element at the top is : " + myStack.Peek());          // Displaying the count of elements        // contained in the Stack        Console.Write("Total number of elements in the Stack are : ");          Console.WriteLine(myStack.Count);    }}
Output:
Total number of elements in the Stack are : 6
Element at the top is : 6th Element
Element at the top is : 6th Element
Total number of elements in the Stack are : 6

Example:
// C# code to Get the number of// elements contained in the Stackusing System;using System.Collections;  class GFG {      // Driver code    public static void Main()    {          // Creating a Stack        Stack myStack = new Stack();          // Inserting the elements into the Stack        myStack.Push("Chandigarh");        myStack.Push("Delhi");        myStack.Push("Noida");        myStack.Push("Himachal");        myStack.Push("Punjab");        myStack.Push("Jammu");          // Displaying the count of elements        // contained in the Stack        Console.Write("Total number of elements in the Stack are : ");          Console.WriteLine(myStack.Count);    }}
Output:
Total number of elements in the Stack are : 6

Example :
// C# code to Remove all// objects from the Stackusing System;using System.Collections;  class GFG {      // Driver code    public static void Main()    {          // Creating a Stack         Stack myStack = new Stack();          // Inserting the elements into the Stack        myStack.Push("1st Element");        myStack.Push("2nd Element");        myStack.Push("3rd Element");        myStack.Push("4th Element");        myStack.Push("5th Element");        myStack.Push("6th Element");          // Displaying the count of elements        // contained in the Stack before        // removing all the elements        Console.Write("Total number of elements in the Stack are : ");          Console.WriteLine(myStack.Count);          // Removing all elements from Stack        myStack.Clear();          // Displaying the count of elements        // contained in the Stack after        // removing all the elements        Console.Write("Total number of elements in the Stack are : ");          Console.WriteLine(myStack.Count);    }}
Total number of elements in the Stack are : 6
Total number of elements in the Stack are : 0

Example :
// C# code to Check if a Stack// contains an elementusing System;using System.Collections;  class GFG {      // Driver code    public static void Main()    {          // Creating a Stack of strings        Stack myStack = new Stack();          // Inserting the elements into the Stack        myStack.Push("Geeks");        myStack.Push("Geeks Classes");        myStack.Push("Noida");        myStack.Push("Data Structures");        myStack.Push("GeeksforGeeks");          // Checking whether the element is        // present in the Stack or not        // The function returns True if the        // element is present in the Stack, else        // returns False        Console.WriteLine(myStack.Contains("GeeksforGeeks"));    }}
True

Reference:
https://docs.microsoft.com/en-us/dotnet/api/system.collections.stack?view=netframework-4.7.2
CSharp-Collections-Namespace
CSharp-Collections-Stack
CSharp-Stack-Class
C#
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Comments
Old Comments
Difference between Abstract Class and Interface in C#
C# | How to check whether a List contains a specified element
C# | Method Overriding
C# | IsNullOrEmpty() Method
C# Dictionary with examples
String.Split() Method in C# with Examples
Difference between Ref and Out keywords in C#
C# | Arrays of Strings
C# | Delegates
Top 50 C# Interview Questions & Answers