El método Queue<T>.CopyTo(T[], Int32) se usa para copiar los elementos de la cola en una array unidimensional existente, comenzando en el índice de array especificado. Los elementos se copian en el Array en el mismo orden en que el enumerador recorre la Cola y este método es una operación O(n), donde n es Count. Este método viene bajo el espacio de System.Collections.Generic
nombres.
Sintaxis:
public void CopyTo (T[] array, int arrayIndex);
Parámetros:
array: Es el Array unidimensional que es el destino de los elementos copiados de Queue<T>. El Array debe tener una indexación basada en cero.
arrayIndex: Es el índice basado en cero en la array en el que comienza la copia.
Excepciones:
- ArgumentNullException: si la array es nula.
- ArgumentOutOfRangeException: si el índice es menor que cero.
- ArgumentException: si la cantidad de elementos en el Queue<T> de origen es mayor que el espacio disponible desde arrayIndex hasta el final de la array de destino .
Los siguientes programas ilustran el uso del método mencionado anteriormente:
Ejemplo 1:
// C# code to illustrate the // Queue<T>.CopyTo(T[], Int32) // Method using System; using System.Collections.Generic; class GFG { // Driver code public static void Main() { // Creating an Queue of String Queue<string> myq = new Queue<string>(); // Adding elements to Queue myq.Enqueue("A"); myq.Enqueue("B"); myq.Enqueue("C"); myq.Enqueue("D"); // Creates and initializes the // one-dimensional target Array. String[] arr = new String[6]; // adding elements to Array arr[0] = "HTML"; arr[1] = "PHP"; arr[2] = "Java"; arr[3] = "Python"; arr[4] = "C#"; arr[5] = "OS"; Console.WriteLine("Before Method: "); Console.WriteLine("\nQueue Contains: "); // Displaying the elements in myq foreach(Object obj in myq) { Console.WriteLine(obj); } Console.WriteLine("\nArray Contains: "); // Displaying the elements in arr for (int i = 0; i < arr.Length; i++) { Console.WriteLine("arr[{0}] : {1}", i, arr[i]); } Console.WriteLine("After Method: "); // Copying the entire source Queue // to the target Array starting at // index 2. myq.CopyTo(arr, 2); Console.WriteLine("\nQueue Contains: "); // Displaying the elements in myq foreach(Object obj in myq) { Console.WriteLine(obj); } Console.WriteLine("\nArray Contains: "); // Displaying the elements in arr for (int i = 0; i < arr.Length; i++) { Console.WriteLine("arr[{0}] : {1}", i, arr[i]); } } }
Producción:
Before Method: Queue Contains: A B C D Array Contains: arr[0] : HTML arr[1] : PHP arr[2] : Java arr[3] : Python arr[4] : C# arr[5] : OS After Method: Queue Contains: A B C D Array Contains: arr[0] : HTML arr[1] : PHP arr[2] : A arr[3] : B arr[4] : C arr[5] : D
Ejemplo 2:
// C# code to illustrate the // Queue<T>.CopyTo(T[], Int32) // Method using System; using System.Collections.Generic; class GFG { // Driver code public static void Main() { // Creating an Queue of String Queue<string> myq = new Queue<string>(); // Adding elements to Queue myq.Enqueue("GFG"); myq.Enqueue("Geeks"); myq.Enqueue("Sudo"); myq.Enqueue("DSA"); // Creates and initializes the // one-dimensional target Array. String[] arr = new String[2]; // adding elements to Array arr[0] = "HTML"; arr[1] = "PHP"; arr[2] = "Java"; arr[3] = "Python"; arr[4] = "C#"; arr[5] = "OS"; Console.WriteLine("Before Method: "); Console.WriteLine("\nQueue Contains: "); // Displaying the elements in myq foreach(Object obj in myq) { Console.WriteLine(obj); } Console.WriteLine("\nArray Contains: "); // Displaying the elements in arr for (int i = 0; i < arr.Length; i++) { Console.WriteLine("arr[{0}] : {1}", i, arr[i]); } Console.WriteLine("After Method: "); // using Method but It will give // Runtime Error as number of elements // in the source Queue is greater // than the number of elements that // the destination array can contain myq.CopyTo(arr, 2); Console.WriteLine("\nQueue Contains: "); // Displaying the elements in myq foreach(Object obj in myq) { Console.WriteLine(obj); } Console.WriteLine("\nArray Contains: "); // Displaying the elements in arr for (int i = 0; i < arr.Length; i++) { Console.WriteLine("arr[{0}] : {1}", i, arr[i]); } } }
Error de tiempo de ejecución:
Excepción no controlada:
System.IndexOutOfRangeException: el índice estaba fuera de los límites de la array.
Referencia:
Publicación traducida automáticamente
Artículo escrito por Kirti_Mangal y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA