Leer en inglés

Compartir a través de


Array.CopyTo Método

Definición

Copia todos los elementos de la matriz unidimensional actual en la matriz unidimensional especificada.

Sobrecargas

CopyTo(Array, Int32)

Copia todos los elementos de la matriz unidimensional actual en la matriz unidimensional especificada, empezando en el índice especificado de la matriz de destino. El índice se especifica como un entero de 32 bits.

CopyTo(Array, Int64)

Copia todos los elementos de la matriz unidimensional actual en la matriz unidimensional especificada, empezando en el índice especificado de la matriz de destino. El índice se especifica como un entero de 64 bits.

Ejemplos

En el ejemplo de código siguiente se muestra cómo copiar un objeto Array en otro Array.

using System;

public class SamplesArray
{

   public static void Main()
   {

      // Creates and initializes two new Arrays.
      Array mySourceArray=Array.CreateInstance(typeof(string), 6);
      mySourceArray.SetValue("three", 0);
      mySourceArray.SetValue("napping", 1);
      mySourceArray.SetValue("cats", 2);
      mySourceArray.SetValue("in", 3);
      mySourceArray.SetValue("the", 4);
      mySourceArray.SetValue("barn", 5);
      Array myTargetArray=Array.CreateInstance(typeof(string), 15);
      myTargetArray.SetValue("The", 0);
      myTargetArray.SetValue("quick", 1);
      myTargetArray.SetValue("brown", 2);
      myTargetArray.SetValue("fox", 3);
      myTargetArray.SetValue("jumps", 4);
      myTargetArray.SetValue("over", 5);
      myTargetArray.SetValue("the", 6);
      myTargetArray.SetValue("lazy", 7);
      myTargetArray.SetValue("dog", 8);

      // Displays the values of the Array.
      Console.WriteLine("The target Array contains the following (before and after copying):");
      PrintValues(myTargetArray, ' ');

      // Copies the source Array to the target Array, starting at index 6.
      mySourceArray.CopyTo(myTargetArray, 6);

      // Displays the values of the Array.
      PrintValues(myTargetArray, ' ');
   }

   public static void PrintValues(Array myArr, char mySeparator)
   {

      System.Collections.IEnumerator myEnumerator = myArr.GetEnumerator();
      int i = 0;
      int cols = myArr.GetLength(myArr.Rank - 1);
      while (myEnumerator.MoveNext())
      {
         if (i < cols)
         {
            i++;
         }
         else
         {
             Console.WriteLine();
             i = 1;
         }
         Console.Write("{0}{1}", mySeparator, myEnumerator.Current);
      }
      Console.WriteLine();
   }
}
/*
This code produces the following output.

The target Array contains the following (before and after copying):
 The quick brown fox jumps over the lazy dog
 The quick brown fox jumps over three napping cats in the barn
*/

En el ejemplo de código siguiente se muestra cómo copiar un objeto Array en otro Array con un límite inferior distinto de cero. Tenga en cuenta que todo el origen Array se copia, incluidos los elementos vacíos que sobrescriben los elementos existentes en el destino Array.

using System;

public class SamplesArray2
{

   public static void Main()
   {
      // Creates and initializes the source Array.
      Array myArrayZero=Array.CreateInstance(typeof(string), 3);
      myArrayZero.SetValue("zero", 0);
      myArrayZero.SetValue("one", 1);

      // Displays the source Array.
      Console.WriteLine("The array with lower bound=0 contains:");
      PrintIndexAndValues(myArrayZero);

      // Creates and initializes the target Array.
      int[] myArrLen = { 4 };
      int[] myArrLow = { 2 };
      Array myArrayTwo=Array.CreateInstance(typeof(string), myArrLen, myArrLow);
      myArrayTwo.SetValue("two", 2);
      myArrayTwo.SetValue("three", 3);
      myArrayTwo.SetValue("four", 4);
      myArrayTwo.SetValue("five", 5);

      // Displays the target Array.
      Console.WriteLine("The array with lower bound=2 contains:");
      PrintIndexAndValues(myArrayTwo);

      // Copies from the array with lower bound=0 to the array with lower bound=2.
      myArrayZero.CopyTo(myArrayTwo, 3);

      // Displays the modified target Array.
      Console.WriteLine("\nAfter copying to the target array from index 3:");
      PrintIndexAndValues(myArrayTwo);
   }

   public static void PrintIndexAndValues(Array myArray)
   {
      for (int i = myArray.GetLowerBound(0); i <= myArray.GetUpperBound(0); i++)
         Console.WriteLine("\t[{0}]:\t{1}", i, myArray.GetValue(i));
   }
}
/*
This code produces the following output.

The array with lower bound=0 contains:
    [0]:    zero
    [1]:    one
    [2]:
The array with lower bound=2 contains:
    [2]:    two
    [3]:    three
    [4]:    four
    [5]:    five

After copying to the target array from index 3:
    [2]:    two
    [3]:    zero
    [4]:    one
    [5]:
*/

CopyTo(Array, Int32)

Source:
Array.cs
Source:
Array.cs
Source:
Array.cs

Copia todos los elementos de la matriz unidimensional actual en la matriz unidimensional especificada, empezando en el índice especificado de la matriz de destino. El índice se especifica como un entero de 32 bits.

public void CopyTo (Array array, int index);
public virtual void CopyTo (Array array, int index);

Parámetros

array
Array

Matriz unidimensional que constituye el destino de los elementos copiados desde la matriz actual.

index
Int32

Entero de 32 bits que representa el índice de array donde comienza la copia.

Implementaciones

Excepciones

array es null.

index es menor que el límite inferior de array.

array es multidimensional.

O bien

El número de elementos de la matriz de origen es mayor que el número de elementos disponible desde index hasta el final de la array de destino.

El tipo de la Array de origen no puede convertirse automáticamente al tipo de la array de destino.

La matriz de origen es multidimensional.

Al menos un elemento de la Array de origen no se puede convertir al tipo de array de destino.

Comentarios

Este método copia todos los elementos de la instancia de matriz actual en la array matriz de destino, empezando por el índice index. La array matriz de destino ya debe haber sido dimensionada y debe tener un número suficiente de elementos para acomodar los elementos copiados. De lo contrario, el método produce una excepción.

Este método admite la System.Collections.ICollection interfaz . Si la implementación System.Collections.ICollection no es necesaria explícitamente, use Copy para evitar una direccionamiento indirecto adicional.

Si este método produce una excepción mientras se copia, el estado de array no está definido.

Este método es una operación O(n), donde n es Length. Solo realiza una copia superficial.

Consulte también

Se aplica a

.NET 9 y otras versiones
Producto Versiones
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

CopyTo(Array, Int64)

Source:
Array.cs
Source:
Array.cs
Source:
Array.cs

Copia todos los elementos de la matriz unidimensional actual en la matriz unidimensional especificada, empezando en el índice especificado de la matriz de destino. El índice se especifica como un entero de 64 bits.

public void CopyTo (Array array, long index);
[System.Runtime.InteropServices.ComVisible(false)]
public virtual void CopyTo (Array array, long index);
[System.Runtime.InteropServices.ComVisible(false)]
public void CopyTo (Array array, long index);

Parámetros

array
Array

Matriz unidimensional que constituye el destino de los elementos copiados desde la matriz actual.

index
Int64

Entero de 64 bits que representa el índice de array donde comienza la copia.

Atributos

Excepciones

array es null.

index está fuera del intervalo de índices válidos para la array.

array es multidimensional.

O bien

El número de elementos de la matriz de origen es mayor que el número de elementos disponible desde index hasta el final de la array de destino.

El tipo de la Array de origen no puede convertirse automáticamente al tipo de la array de destino.

La Array de origen es multidimensional.

Al menos un elemento de la Array de origen no se puede convertir al tipo de array de destino.

Comentarios

Este método copia todos los elementos de la instancia de matriz actual en la array matriz de destino, empezando por el índice index. La array matriz de destino ya debe haber sido dimensionada y debe tener un número suficiente de elementos para acomodar los elementos copiados. De lo contrario, el método produce una excepción.

Este método admite la System.Collections.ICollection interfaz . Si la implementación System.Collections.ICollection no es necesaria explícitamente, use Copy para evitar una direccionamiento indirecto adicional.

Si este método produce una excepción mientras se copia, el estado de array no está definido.

Este método es una operación O(n), donde n es Length. Solo realiza una copia superficial.

Consulte también

Se aplica a

.NET 9 y otras versiones
Producto Versiones
.NET Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1