Array.CopyTo Methode

Definition

Kopiert alle Elemente des aktuellen eindimensionalen Arrays in das angegebene eindimensionale Array.Copies all the elements of the current one-dimensional array to the specified one-dimensional array.

Überlädt

CopyTo(Array, Int32)

Kopiert alle Elemente des aktuellen eindimensionalen Arrays in das angegebene eindimensionale Array, beginnend am angegebenen Index des Zielarrays.Copies all the elements of the current one-dimensional array to the specified one-dimensional array starting at the specified destination array index. Der Index wird als 32-Bit-Ganzzahl angegeben.The index is specified as a 32-bit integer.

CopyTo(Array, Int64)

Kopiert alle Elemente des aktuellen eindimensionalen Arrays in das angegebene eindimensionale Array, beginnend am angegebenen Index des Zielarrays.Copies all the elements of the current one-dimensional array to the specified one-dimensional array starting at the specified destination array index. Der Index wird als 64-Bit-Ganzzahl angegeben.The index is specified as a 64-bit integer.

Beispiele

Im folgenden Codebeispiel wird gezeigt, wie ein Array in ein anderes kopiert wird Array .The following code example shows how to copy an Array to another Array.

using namespace System;

void main()
{
   // Creates and initializes two new Array instances.
   Array^ mySourceArray = Array::CreateInstance(String::typeid, 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(String::typeid, 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 instance 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);
}

void PrintValues(Array^ myArr)
{
   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}", myEnumerator->Current);
   }

   Console::WriteLine();
}

/*
 This code produces the following output.
 
  The target Array instance 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
 */
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
*/
Public Class SamplesArray    
    
    Public Shared Sub Main()
        
        ' Creates and initializes two new Arrays.
        Dim mySourceArray As Array = Array.CreateInstance(GetType(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)
        Dim myTargetArray As Array = Array.CreateInstance(GetType(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, " "c)
        
        ' Copies the source Array to the target Array, starting at index 6.
        mySourceArray.CopyTo(myTargetArray, 6)
        
        ' Displays the values of the Array.
        PrintValues(myTargetArray, " "c)
    End Sub    
    
    Public Shared Sub PrintValues(myArr As Array, mySeparator As Char)
        Dim myEnumerator As System.Collections.IEnumerator = _
           myArr.GetEnumerator()
        Dim i As Integer = 0
        Dim cols As Integer = myArr.GetLength((myArr.Rank - 1))
        While myEnumerator.MoveNext()
            If i < cols Then
                i += 1
            Else
                Console.WriteLine()
                i = 1
            End If
            Console.Write("{0}{1}", mySeparator, myEnumerator.Current)
        End While
        Console.WriteLine()
    End Sub
End Class

' 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

Im folgenden Codebeispiel wird veranschaulicht, wie ein Array mit einer unteren Grenze ungleich 0 (null) in ein anderes kopiert wird Array .The following code example shows how to copy an Array to another Array with a nonzero lower bound. Beachten Sie, dass die gesamte Quelle Array kopiert wird, einschließlich leerer Elemente, die vorhandene Elemente im Ziel überschreiben Array .Note that the entire source Array is copied, including empty elements that overwrite existing elements in the target Array.

using namespace System;

void main()
{
   // Creates and initializes the source Array.
   Array^ myArrayZero = Array::CreateInstance(String::typeid, 3);
   myArrayZero->SetValue("zero", 0);
   myArrayZero->SetValue("one", 1);

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

   // Creates and initializes the target Array.
   array<int>^myArrLen = {4};
   array<int>^myArrLow = {2};
   Array^ myArrayTwo = Array::CreateInstance(String::typeid, 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 lowbound=2 contains:");
   PrintIndexAndValues(myArrayTwo);

   // Copy from the array with lowbound=0 to the array with lowbound=2.
   myArrayZero->CopyTo(myArrayTwo, 3);

   // Displays the modified target Array.
   Console::WriteLine("\nAfter copying at relative index 1:");
   PrintIndexAndValues(myArrayTwo);
}

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 lowbound=0 contains:
     [0]:    zero
     [1]:    one
     [2]:    
 The array with lowbound=2 contains:
     [2]:    two
     [3]:    three
     [4]:    four
     [5]:    five
 
 After copying at relative index 1:
     [2]:    two
     [3]:    zero
     [4]:    one
     [5]:
 */
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]:
*/
Public Class SamplesArray2    
    
    Public Shared Sub Main()
        ' Creates and initializes the source Array.
        Dim myArrayZero As Array = Array.CreateInstance(GetType(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.
        Dim myArrLen As Integer() = {4}
        Dim myArrLow As Integer() = {2}
        Dim myArrayTwo As Array = Array.CreateInstance(GetType(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(ControlChars.Cr + "After copying to the target array from " _
           + "index 3:")
        PrintIndexAndValues(myArrayTwo)
    End Sub
    
    Public Shared Sub PrintIndexAndValues(myArray As Array)
        Dim i As Integer
        For i = myArray.GetLowerBound(0) To myArray.GetUpperBound(0)
            Console.WriteLine(ControlChars.Tab + "[{0}]:" + ControlChars.Tab _
               + "{1}", i, myArray.GetValue(i))
        Next i
    End Sub
End Class

' 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)

Kopiert alle Elemente des aktuellen eindimensionalen Arrays in das angegebene eindimensionale Array, beginnend am angegebenen Index des Zielarrays.Copies all the elements of the current one-dimensional array to the specified one-dimensional array starting at the specified destination array index. Der Index wird als 32-Bit-Ganzzahl angegeben.The index is specified as a 32-bit integer.

public:
 virtual void CopyTo(Array ^ array, int index);
public void CopyTo (Array array, int index);
public virtual void CopyTo (Array array, int index);
abstract member CopyTo : Array * int -> unit
override this.CopyTo : Array * int -> unit
Public Sub CopyTo (array As Array, index As Integer)
Public Overridable Sub CopyTo (array As Array, index As Integer)

Parameter

array
Array

Das eindimensionale Array, das das Ziel der aus dem aktuellen Array kopierten Elemente ist.The one-dimensional array that is the destination of the elements copied from the current array.

index
Int32

Eine 32-Bit-Ganzzahl, die den Index im array angibt, ab dem kopiert werden soll.A 32-bit integer that represents the index in array at which copying begins.

Implementiert

Ausnahmen

array ist null.array is null.

index ist kleiner als die untere array-Grenze.index is less than the lower bound of array.

array ist mehrdimensional.array is multidimensional.

- oder --or- Die Anzahl der Elemente im Quellarray ist größer als die verfügbare Anzahl der Elemente vom index bis zum Ende des Ziel-arrays.The number of elements in the source array is greater than the available number of elements from index to the end of the destination array.

Der Typ der Quell-Array kann nicht automatisch in den Typ des Ziel-array umgewandelt werden.The type of the source Array cannot be cast automatically to the type of the destination array.

Das Quellarray ist mehrdimensional.The source array is multidimensional.

Mindestens ein Element im Quell-Array kann nicht in den Typ des Ziel-arrays umgewandelt werden.At least one element in the source Array cannot be cast to the type of destination array.

Hinweise

Diese Methode kopiert alle Elemente der aktuellen Array Instanz in das array Zielarray, beginnend bei Index index .This method copies all the elements of the current array instance to the array destination array, starting at index index. Das array Zielarray muss bereits dimensioniert sein und muss über eine ausreichende Anzahl von Elementen verfügen, um die kopierten Elemente aufnehmen zu können.The array destination array must already have been dimensioned and must have a sufficient number of elements to accommodate the copied elements. Andernfalls löst die Methode eine Ausnahme aus.Otherwise, the method throws an exception.

Diese Methode unterstützt die System.Collections.ICollection Schnittstelle.This method supports the System.Collections.ICollection interface. Wenn System.Collections.ICollection die Implementierung nicht explizit erforderlich ist, verwenden Copy Sie, um eine zusätzliche Dereferenzierung zu vermeiden.If implementing System.Collections.ICollection is not explicitly required, use Copy to avoid an extra indirection.

Wenn diese Methode eine Ausnahme beim Kopieren auslöst, ist der Zustand von nicht array definiert.If this method throws an exception while copying, the state of array is undefined.

Diese Methode ist ein O ( n )-Vorgang, bei dem gleich n ist Length .This method is an O(n) operation, where n is Length. Sie führt nur eine flache Kopie aus.It performs a shallow copy only.

Weitere Informationen

Gilt für:

Produkt Introduced

CopyTo(Array, Int64)

Kopiert alle Elemente des aktuellen eindimensionalen Arrays in das angegebene eindimensionale Array, beginnend am angegebenen Index des Zielarrays.Copies all the elements of the current one-dimensional array to the specified one-dimensional array starting at the specified destination array index. Der Index wird als 64-Bit-Ganzzahl angegeben.The index is specified as a 64-bit integer.

public:
 void CopyTo(Array ^ array, long index);
public:
 virtual void CopyTo(Array ^ array, long index);
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);
member this.CopyTo : Array * int64 -> unit
[<System.Runtime.InteropServices.ComVisible(false)>]
abstract member CopyTo : Array * int64 -> unit
override this.CopyTo : Array * int64 -> unit
[<System.Runtime.InteropServices.ComVisible(false)>]
member this.CopyTo : Array * int64 -> unit
Public Sub CopyTo (array As Array, index As Long)
Public Overridable Sub CopyTo (array As Array, index As Long)

Parameter

array
Array

Das eindimensionale Array, das das Ziel der aus dem aktuellen Array kopierten Elemente ist.The one-dimensional array that is the destination of the elements copied from the current array.

index
Int64

Eine 64-Bit-Ganzzahl, die den Index im array angibt, ab dem kopiert werden soll.A 64-bit integer that represents the index in array at which copying begins.

Attribute

Ausnahmen

array ist null.array is null.

index liegt außerhalb des Bereichs der gültigen Indizes für array.index is outside the range of valid indexes for array.

array ist mehrdimensional.array is multidimensional.

- oder --or- Die Anzahl der Elemente im Quellarray ist größer als die verfügbare Anzahl der Elemente vom index bis zum Ende des Ziel-arrays.The number of elements in the source array is greater than the available number of elements from index to the end of the destination array.

Der Typ der Quell-Array kann nicht automatisch in den Typ des Ziel-array umgewandelt werden.The type of the source Array cannot be cast automatically to the type of the destination array.

Das Quell-Array ist mehrdimensional.The source Array is multidimensional.

Mindestens ein Element im Quell-Array kann nicht in den Typ des Ziel-arrays umgewandelt werden.At least one element in the source Array cannot be cast to the type of destination array.

Hinweise

Diese Methode kopiert alle Elemente der aktuellen Array Instanz in das array Zielarray, beginnend bei Index index .This method copies all the elements of the current array instance to the array destination array, starting at index index. Das array Zielarray muss bereits dimensioniert sein und muss über eine ausreichende Anzahl von Elementen verfügen, um die kopierten Elemente aufnehmen zu können.The array destination array must already have been dimensioned and must have a sufficient number of elements to accommodate the copied elements. Andernfalls löst die Methode eine Ausnahme aus.Otherwise, the method throws an exception.

Diese Methode unterstützt die System.Collections.ICollection Schnittstelle.This method supports the System.Collections.ICollection interface. Wenn System.Collections.ICollection die Implementierung nicht explizit erforderlich ist, verwenden Copy Sie, um eine zusätzliche Dereferenzierung zu vermeiden.If implementing System.Collections.ICollection is not explicitly required, use Copy to avoid an extra indirection.

Wenn diese Methode eine Ausnahme beim Kopieren auslöst, ist der Zustand von nicht array definiert.If this method throws an exception while copying, the state of array is undefined.

Diese Methode ist ein O ( n )-Vorgang, bei dem gleich n ist Length .This method is an O(n) operation, where n is Length. Sie führt nur eine flache Kopie aus.It performs a shallow copy only.

Weitere Informationen

Gilt für:

Produkt Introduced