C# - Stack

 Stack is a special type of collection that stores elements in LIFO style (Last In First Out). C# includes the generic Stack<T> and non-generic Stack collection classes. It is recommended to use the generic Stack<T> collection.

Stack is useful to store temporary data in LIFO style, and you might want to delete an element after retrieving its value.

Stack<T> Characteristics

  • Stack<T> is Last In First Out collection.
  • It comes under System.Collection.Generic namespace.
  • Stack<T> can contain elements of the specified type. It provides compile-time type checking and doesn't perform boxing-unboxing because it is generic.
  • Elements can be added using the Push() method. Cannot use collection-initializer syntax.
  • Elements can be retrieved using the Pop() and the Peek() methods. It does not support an indexer.

Creating a Stack

You can create an object of the Stack<T> by specifying a type parameter for the type of elements it can store. The following example creates and adds elements in the Stack<T> using the Push() method. Stack allows null (for reference types) and duplicate values.

Example: Create and Add Elements in Stack
Stack<int> myStack = new Stack<int>();
myStack.Push(1);
myStack.Push(2);
myStack.Push(3);
myStack.Push(4);

foreach (var item in myStack)
     Console.Write(item + ","); //prints 4,3,2,1, 

You can also create a Stack from an array, as shown below.

Example: Create and Add Elements in Stack
int[] arr = new int[]{ 1, 2, 3, 4};
Stack<int> myStack = new Stack<int>(arr);

foreach (var item in myStack)
     Console.Write(item + ","); //prints 4,3,2,1, 

Stack<T> Properties and Methods:

PropertyUsage
CountReturns the total count of elements in the Stack.
MethodUsage
Push(T)Inserts an item at the top of the stack.
Peek()Returns the top item from the stack.
Pop()Removes and returns items from the top of the stack.
Contains(T)Checks whether an item exists in the stack or not.
Clear()Removes all items from the stack.

Comments

Popular posts from this blog

C# | Association, Aggregation and Composition

Throw vs Throw ex in C#

C# Extension Method