C# | Copy the Stack to an Array

Stack<T>.CopyTo(T[], Int32) Method is used to copy the Stack<T> to an existing 1-D Array which starts from the specified array index.

Properties:

  • The capacity of a Stack<T>is the number of elements the Stack<T> can hold. As elements are added to a Stack<T> , the capacity is automatically increased as required through reallocation.
  • If Count is less than the capacity of the Stack<T> , 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.

Syntax:

public void CopyTo (T[] array, int arrayIndex);

Parameters:

array: The one-dimensional Array that is the destination of the elements copied from Stack<T>. The Array must have zero-based indexing.

arrayIndex: The zero-based index in array at which copying begins.

Exceptions:

  • ArgumentNullException : If an array is null.
  • ArgumentOutOfRangeException : If the arrayIndex is less than zero.
  • ArgumentException : The number of elements in the source Stack<T> is greater than the available space from arrayIndex to the end of the destination array.

Below given are some examples to understand the implementation in a better way:

Example 1:

filter_none

edit
close

play_arrow

link
brightness_4
code

// C# code to Copy the Stack to an Array
using System;
using System.Collections.Generic;
  
class GFG {
  
    // Driver code
    public static void Main()
    {
  
        // Creating a Stack of strings
        Stack<string> myStack = new Stack<string>();
  
        // Inserting the elements into the Stack
        myStack.Push("Geeks");
        myStack.Push("Geeks Classes");
        myStack.Push("Noida");
        myStack.Push("Data Structures");
        myStack.Push("GeeksforGeeks");
  
        // Creating a string array arr
        string[] arr = new string[myStack.Count];
  
        // Copying the elements of stack into array arr
        myStack.CopyTo(arr, 0);
  
        // Displaying the elements in array arr
        foreach(string str in arr)
        {
            Console.WriteLine(str);
        }
    }
}

chevron_right


Output:

GeeksforGeeks
Data Structures
Noida
Geeks Classes
Geeks

Example 2:

filter_none

edit
close

play_arrow

link
brightness_4
code

// C# code to Copy the Stack to an Array
using System;
using System.Collections.Generic;
  
class GFG {
  
    // Driver code
    public static void Main()
    {
  
        // Creating a Stack of Integers
        Stack<int> myStack = new Stack<int>();
  
        // Inserting the elements into the Stack
        myStack.Push(2);
        myStack.Push(3);
        myStack.Push(4);
        myStack.Push(5);
        myStack.Push(6);
  
        // Creating an Integer array arr
        int[] arr = new int[myStack.Count];
  
        // Copying the elements of stack into array arr
        myStack.CopyTo(arr, 0);
  
        // Displaying the elements in array arr
        foreach(int i in arr)
        {
            Console.WriteLine(i);
        }
    }
}

chevron_right


Output:

6
5
4
3
2

Reference:



My Personal Notes arrow_drop_up

In love with a semicolon because sometimes i miss it so badly)

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.