C# | Copy the entire LinkedList<T> to Array

LinkedList<T>.CopyTo(T[], Int32) method is used to copy the entire LinkedList<T> to a compatible one-dimensional Array, starting at the specified index of the target array.

Syntax:

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

Parameters:



  • array : It is the one-dimensional Array that is the destination of the elements copied from LinkedList. The Array must have zero-based indexing.
  • index : It is the zero-based index in array at which copying begins.

Exceptions:

  • ArgumentNullException : If the array is null.
  • ArgumentOutOfRangeException : If the index is less than zero.
  • ArgumentException : If the number of elements in the source LinkedList is greater than the available space from index 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 LinkedList to
// Array, starting at the specified
// index of the target array
using System;
using System.Collections;
using System.Collections.Generic;
  
class GFG {
  
    // Driver code
    public static void Main()
    {
        // Creating a LinkedList of Strings
        LinkedList<String> myList = new LinkedList<String>();
  
        // Adding nodes in LinkedList
        myList.AddLast("A");
        myList.AddLast("B");
        myList.AddLast("C");
        myList.AddLast("D");
        myList.AddLast("E");
  
        // Creating a string array
        string[] myArr = new string[1000];
  
        // Copying LinkedList to Array,
        // starting at the specified index
        // of the target array
        myList.CopyTo(myArr, 0);
  
        // Displaying elements in array myArr
        foreach(string str in myArr)
        {
            Console.WriteLine(str);
        }
    }
}

chevron_right


Output:

A
B
C
D
E

Example 2:

filter_none

edit
close

play_arrow

link
brightness_4
code

// C# code to copy LinkedList to
// Array, starting at the specified
// index of the target array
using System;
using System.Collections;
using System.Collections.Generic;
  
class GFG {
  
    // Driver code
    public static void Main()
    {
        // Creating a LinkedList of Integers
        LinkedList<int> myList = new LinkedList<int>();
  
        // Adding nodes in LinkedList
        myList.AddLast(5);
        myList.AddLast(7);
        myList.AddLast(9);
        myList.AddLast(11);
        myList.AddLast(12);
  
        // Creating an Integer array
        int[] myArr = new int[100];
  
        // Copying LinkedList to Array,
        // starting at the specified index
        // of the target array
        // This should raise "ArgumentOutOfRangeException"
        // as index is less than 0
        myList.CopyTo(myArr, -2);
  
        // Displaying elements in array myArr
        foreach(int i in myArr)
        {
            Console.WriteLine(i);
        }
    }
}

chevron_right


Runtime Error:

Unhandled Exception:
System.ArgumentOutOfRangeException: Non-negative number required.
Parameter name: index

Note:

  • The elements are copied to the Array in the same order in which the enumerator iterates through the LinkedList.
  • This method is an O(n) operation, where n is Count.

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.