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

01 Feb, 2019
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:
// C# code to copy LinkedList to// Array, starting at the specified// index of the target arrayusing 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);        }    }}
Output:
A
B
C
D
E

Example 2:
// C# code to copy LinkedList to// Array, starting at the specified// index of the target arrayusing 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);        }    }}
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:
https://docs.microsoft.com/en-us/dotnet/api/system.collections.generic.linkedlist-1.copyto?view=netframework-4.7.2
CSharp-Generic-Namespace
CSharp-LinkedList
CSharp-LinkedList-Methods
C#
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Destructors in C#
Extension Method in C#
HashSet in C# with Examples
Top 50 C# Interview Questions & Answers
C# | How to insert an element in an Array?
Partial Classes in C#
C# | Inheritance
C# | List Class
Difference between Hashtable and Dictionary in C#
Lambda Expressions in C#