Array.CopyTo Array.CopyTo Array.CopyTo Method

Definicja

Kopiuje wszystkie elementy bieżącej tablicy jednowymiarowej do określonej jednowymiarowej tablicy.Copies all the elements of the current one-dimensional array to the specified one-dimensional array.

Przeciążenia

CopyTo(Array, Int32) CopyTo(Array, Int32) CopyTo(Array, Int32)

Kopiuje wszystkie elementy bieżącej tablicy jednowymiarowej do określonej jednowymiarowej tablicy, rozpoczynając od określonego indeksu tablicy docelowej.Copies all the elements of the current one-dimensional array to the specified one-dimensional array starting at the specified destination array index. Indeks jest określony jako 32-bitową liczbę całkowitą.The index is specified as a 32-bit integer.

CopyTo(Array, Int64) CopyTo(Array, Int64) CopyTo(Array, Int64)

Kopiuje wszystkie elementy bieżącej tablicy jednowymiarowej do określonej jednowymiarowej tablicy, rozpoczynając od określonego indeksu tablicy docelowej.Copies all the elements of the current one-dimensional array to the specified one-dimensional array starting at the specified destination array index. Indeks jest określony jako 64-bitową liczbę całkowitą.The index is specified as a 64-bit integer.

CopyTo(Array, Int32) CopyTo(Array, Int32) CopyTo(Array, Int32)

Kopiuje wszystkie elementy bieżącej tablicy jednowymiarowej do określonej jednowymiarowej tablicy, rozpoczynając od określonego indeksu tablicy docelowej.Copies all the elements of the current one-dimensional array to the specified one-dimensional array starting at the specified destination array index. Indeks jest określony jako 32-bitową liczbę całkowitą.The index is specified as a 32-bit integer.

public:
 virtual 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

Parametry

array
Array Array Array

Jednowymiarowa tablica, która jest miejscem docelowym elementów skopiowanych z bieżącej tablicy.The one-dimensional array that is the destination of the elements copied from the current array.

index
Int32 Int32 Int32

32-bitowa liczba całkowita reprezentująca indeks w array, przy którym rozpoczyna się kopiowanie.A 32-bit integer that represents the index in array at which copying begins.

Implementuje

Wyjątki

index jest mniejsza niż Dolna granica array.index is less than the lower bound of array.

array jest wielowymiarowych.array is multidimensional.

—lub—-or- Liczba elementów w tablicy źródłowej jest większa niż liczba elementów w index do końca docelowej array.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.

Nie można automatycznie rzutować typu źródła Array na typ docelowy array.The type of the source Array cannot be cast automatically to the type of the destination array.

Tablica źródłowa jest wielowymiarowa.The source array is multidimensional.

Nie można rzutować co najmniej jednego elementu w źródle Array na typ docelowy array.At least one element in the source Array cannot be cast to the type of destination array.

Przykłady

Poniższy przykład kodu pokazuje, jak skopiować Array do innego Array.The following code example shows how to copy an Array to another Array.

using namespace System;
void main1();
void main2();
void main()
{
   main1();
   Console::WriteLine();
   main2();
}

void PrintValues( Array^ myArr );
void main1()
{
   // 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

Poniższy przykład kodu pokazuje, jak skopiować Array do innego Array z niezerowym ograniczeniem.The following code example shows how to copy an Array to another Array with a nonzero lower bound. Należy zauważyć, że wszystkie @no__t źródłowe-0 są kopiowane, w tym puste elementy, które zastępują istniejące elementy w docelowym Array.Note that the entire source Array is copied, including empty elements that overwrite existing elements in the target Array.

void PrintIndexAndValues( Array^ myArray );
void main2()
{
   // 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]:
 */
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]: 

Uwagi

Ta metoda kopiuje wszystkie elementy bieżącego wystąpienia tablicy do tablicy docelowej array, rozpoczynając od indeksu index.This method copies all the elements of the current array instance to the array destination array, starting at index index. Tablica docelowa array musi już mieć wymiar i musi mieć wystarczającą liczbę elementów, aby pomieścić skopiowane elementy.The array destination array must already have been dimensioned and must have a sufficient number of elements to accommodate the copied elements. W przeciwnym razie metoda zgłasza wyjątek.Otherwise, the method throws an exception.

Ta metoda obsługuje interfejs System.Collections.ICollection.This method supports the System.Collections.ICollection interface. Jeśli implementacja System.Collections.ICollection nie jest jawnie wymagana, użyj Copy, aby uniknąć dodatkowego pośrednika.If implementing System.Collections.ICollection is not explicitly required, use Copy to avoid an extra indirection.

Jeśli ta metoda zgłasza wyjątek podczas kopiowania, stan array jest niezdefiniowany.If this method throws an exception while copying, the state of array is undefined.

Ta metoda jest operacją O (n), gdzie n jest Length. Wykonuje tylko kopię skróconą.This method is an O(n) operation, where n is Length.It performs a shallow copy only.

Zobacz też

CopyTo(Array, Int64) CopyTo(Array, Int64) CopyTo(Array, Int64)

Kopiuje wszystkie elementy bieżącej tablicy jednowymiarowej do określonej jednowymiarowej tablicy, rozpoczynając od określonego indeksu tablicy docelowej.Copies all the elements of the current one-dimensional array to the specified one-dimensional array starting at the specified destination array index. Indeks jest określony jako 64-bitową liczbę całkowitą.The index is specified as a 64-bit integer.

public:
 virtual void CopyTo(Array ^ array, long index);
[System.Runtime.InteropServices.ComVisible(false)]
public virtual void CopyTo (Array array, long index);
abstract member CopyTo : Array * int64 -> unit
override this.CopyTo : Array * int64 -> unit

Parametry

array
Array Array Array

Jednowymiarowa tablica, która jest miejscem docelowym elementów skopiowanych z bieżącej tablicy.The one-dimensional array that is the destination of the elements copied from the current array.

index
Int64 Int64 Int64

64-bitowa liczba całkowita reprezentująca indeks w array, przy którym rozpoczyna się kopiowanie.A 64-bit integer that represents the index in array at which copying begins.

Wyjątki

index znajduje się poza zakresem prawidłowych indeksów dla array.index is outside the range of valid indexes for array.

array jest wielowymiarowych.array is multidimensional.

—lub—-or- Liczba elementów w tablicy źródłowej jest większa niż liczba elementów w index do końca docelowej array.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.

Nie można automatycznie rzutować typu źródła Array na typ docelowy array.The type of the source Array cannot be cast automatically to the type of the destination array.

Źródło Array jest wielowymiarowe.The source Array is multidimensional.

Nie można rzutować co najmniej jednego elementu w źródle Array na typ docelowy array.At least one element in the source Array cannot be cast to the type of destination array.

Przykłady

Poniższy przykład kodu pokazuje, jak skopiować Array do innego Array.The following code example shows how to copy an Array to another Array.

using namespace System;
void main1();
void main2();
void main()
{
   main1();
   Console::WriteLine();
   main2();
}

void PrintValues( Array^ myArr );
void main1()
{
   // 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

Poniższy przykład kodu pokazuje, jak skopiować Array do innego Array z niezerowym ograniczeniem.The following code example shows how to copy an Array to another Array with a nonzero lower bound. Należy zauważyć, że wszystkie @no__t źródłowe-0 są kopiowane, w tym puste elementy, które zastępują istniejące elementy w docelowym Array.Note that the entire source Array is copied, including empty elements that overwrite existing elements in the target Array.

void PrintIndexAndValues( Array^ myArray );
void main2()
{
   // 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]:
 */
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]: 

Uwagi

Ta metoda kopiuje wszystkie elementy bieżącego wystąpienia tablicy do tablicy docelowej array, rozpoczynając od indeksu index.This method copies all the elements of the current array instance to the array destination array, starting at index index. Tablica docelowa array musi już mieć wymiar i musi mieć wystarczającą liczbę elementów, aby pomieścić skopiowane elementy.The array destination array must already have been dimensioned and must have a sufficient number of elements to accommodate the copied elements. W przeciwnym razie metoda zgłasza wyjątek.Otherwise, the method throws an exception.

Ta metoda obsługuje interfejs System.Collections.ICollection.This method supports the System.Collections.ICollection interface. Jeśli implementacja System.Collections.ICollection nie jest jawnie wymagana, użyj Copy, aby uniknąć dodatkowego pośrednika.If implementing System.Collections.ICollection is not explicitly required, use Copy to avoid an extra indirection.

Jeśli ta metoda zgłasza wyjątek podczas kopiowania, stan array jest niezdefiniowany.If this method throws an exception while copying, the state of array is undefined.

Ta metoda jest operacją O (n), gdzie n jest Length. Wykonuje tylko kopię skróconą.This method is an O(n) operation, where n is Length.It performs a shallow copy only.

Zobacz też

Dotyczy