The Queue<T>
generic class in the System.Collections.Generic
namespace provides the CopyTo()
method, which can be used to copy a queue to an existing array at a specified index in C#.
public void CopyTo (T[] array, int arrayIndex);
This method takes as input a one-dimensional array where the elements will be copied from Queue<T>
, and an index at which the copying begins.
This method throws an exception if:
Queue<T>
is greater than the total number of spaces available in the destination array from the specified index to the end of the array.This method works on one-dimensional arrays.
This operation does not change the state of the queue.
The elements are ordered in the array in the same way as the order of the elements from the start of the queue to the end.
This is an operation, where n is the count of the elements in the queue.
In this example, we create a queue of strings to store month names, and add the names of four months to it: March, April, May and June. After we add the elements, we print all the elements present in the queue.
After this, we create a new array of queueCopy
strings with a size of ten elements that has two elements in it: January and February.
We now copy all the queue elements to this array with the CopyTo()
method, starting from index two.
months.CopyTo(queueCopy,2);
We then print the elements of the array, and the array contains the queue elements in the same order from the specified index.
using System;using System.Collections.Generic;class QueueConverter{static void Main(){Queue<string> months = new Queue<string>();months.Enqueue("March");months.Enqueue("April");months.Enqueue("May");months.Enqueue("June");Console.WriteLine("Queue Items : {0}", string.Join(",", months.ToArray()));string[] queueCopy = new string[10];queueCopy[0] = "January";queueCopy[1] = "February";Console.WriteLine("Array Items before Copy : {0}", string.Join(",", queueCopy));months.CopyTo(queueCopy,2);Console.WriteLine("Array Items after Copy : {0}", string.Join(",", queueCopy));}}