Array.CopyTo Yöntem

Tanım

Geçerli tek boyutlu dizinin tüm öğelerini belirtilen tek boyutlu diziye kopyalar.

Aşırı Yüklemeler

Name Description
CopyTo(Array, Int32)

Geçerli tek boyutlu dizinin tüm öğelerini belirtilen hedef dizi dizininden başlayarak belirtilen tek boyutlu diziye kopyalar. Dizin 32 bit tamsayı olarak belirtilir.

CopyTo(Array, Int64)

Geçerli tek boyutlu dizinin tüm öğelerini belirtilen hedef dizi dizininden başlayarak belirtilen tek boyutlu diziye kopyalar. Dizin 64 bit tamsayı olarak belirtilir.

Örnekler

Aşağıdaki kod örneğinde başka bir Array öğesine Arraynasıl kopyalanacak gösterilmektedir.

let printValues arr sep =
    for i in arr do
        printf $"{sep}{i}"
    printfn ""

// Creates and initializes two new Arrays.
let mySourceArray = 
    [| "three"
       "napping"
       "cats"
       "in"
       "the"
       "barn" |]

let myTargetArray = Array.zeroCreate 15
myTargetArray[0..8] <-
    [| "The"
       "quick"
       "brown"
       "fox"
       "jumps"
       "over"
       "the"
       "lazy"
       "dog" |]

// Displays the values of the Array.
printfn "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 ' '


// 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
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

Aşağıdaki kod örneğinde sıfır olmayan bir alt sınırla diğerine Array nasıl kopyalanacak Array gösterilmektedir. Hedefteki Arraymevcut öğelerin üzerine yazan boş öğeler de dahil olmak üzere kaynağın Array tamamının kopyalandığını unutmayın.

open System

let printIndexAndValues (myArray: Array) =
    for i = myArray.GetLowerBound 0 to myArray.GetUpperBound 0 do
        printfn $"\t[{i}]:\t{myArray.GetValue i}"

// Creates and initializes the source Array.
let myArrayZero = Array.zeroCreate 3
myArrayZero[0] <- "zero"
myArrayZero[1] <- "one"

// Displays the source Array.
printfn "The array with lower bound=0 contains:"
printIndexAndValues myArrayZero

// Creates and initializes the target Array.
let myArrLen = [| 4 |]
let myArrLow = [| 2 |]
let 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.
printfn "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.
printfn "\nAfter copying to the target array from index 3:"
printIndexAndValues myArrayTwo


// 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]:
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)

Kaynak:
Array.cs
Kaynak:
Array.cs
Kaynak:
Array.cs
Kaynak:
Array.cs
Kaynak:
Array.cs

Geçerli tek boyutlu dizinin tüm öğelerini belirtilen hedef dizi dizininden başlayarak belirtilen tek boyutlu diziye kopyalar. Dizin 32 bit tamsayı olarak belirtilir.

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)

Parametreler

array
Array

Geçerli diziden kopyalanan öğelerin hedefi olan tek boyutlu dizi.

index
Int32

Kopyalamanın başladığı hedef dizideki dizini temsil eden 32 bitlik bir tamsayı.

Uygulamalar

Özel durumlar

array, null'e eşittir.

index alt sınırından küçüktür array.

array çok boyutludur.

-veya-

Kaynak dizideki öğe sayısı, hedefin indexsonuna kadar olan kullanılabilir öğe array sayısından fazladır.

Kaynağın Array türü, hedef arraytürüne otomatik olarak atılamaz.

Kaynak dizi çok boyutludur.

Kaynaktaki Array en az bir öğe hedef arraytürüne yayınlanamaz.

Açıklamalar

Bu yöntem, dizininden başlayarak arraygeçerli dizi örneğinin tüm öğelerini hedef diziye index kopyalar. array Hedef dizi zaten boyutlandırılmış olmalı ve kopyalanan öğeleri barındırmak için yeterli sayıda öğeye sahip olmalıdır. Aksi takdirde, yöntemi bir özel durum oluşturur.

Bu yöntem arabirimini System.Collections.ICollection destekler. Uygulama System.Collections.ICollection açıkça gerekli değilse, ek bir dolaylı işlemi önlemek için kullanın Copy .

Bu yöntem kopyalama sırasında bir özel durum oluşturursa, durumu array tanımsız olur.

Bu yöntem bir O(n) işlemidir; burada n olur Length. Yalnızca sığ bir kopya gerçekleştirir.

Ayrıca bkz.

Şunlara uygulanır

CopyTo(Array, Int64)

Kaynak:
Array.cs
Kaynak:
Array.cs
Kaynak:
Array.cs
Kaynak:
Array.cs
Kaynak:
Array.cs

Geçerli tek boyutlu dizinin tüm öğelerini belirtilen hedef dizi dizininden başlayarak belirtilen tek boyutlu diziye kopyalar. Dizin 64 bit tamsayı olarak belirtilir.

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)

Parametreler

array
Array

Geçerli diziden kopyalanan öğelerin hedefi olan tek boyutlu dizi.

index
Int64

Kopyalamanın başladığı hedef dizideki dizini temsil eden 64 bitlik bir tamsayı.

Öznitelikler

Özel durumlar

array, null'e eşittir.

index için geçerli dizin arrayaralığının dışındadır.

array çok boyutludur.

-veya-

Kaynak dizideki öğe sayısı, hedefin indexsonuna kadar olan kullanılabilir öğe array sayısından fazladır.

Kaynağın Array türü, hedef arraytürüne otomatik olarak atılamaz.

Kaynak Array çok boyutludur.

Kaynaktaki Array en az bir öğe hedef arraytürüne yayınlanamaz.

Açıklamalar

Bu yöntem, dizininden başlayarak arraygeçerli dizi örneğinin tüm öğelerini hedef diziye index kopyalar. array Hedef dizi zaten boyutlandırılmış olmalı ve kopyalanan öğeleri barındırmak için yeterli sayıda öğeye sahip olmalıdır. Aksi takdirde, yöntemi bir özel durum oluşturur.

Bu yöntem arabirimini System.Collections.ICollection destekler. Uygulama System.Collections.ICollection açıkça gerekli değilse, ek bir dolaylı işlemi önlemek için kullanın Copy .

Bu yöntem kopyalama sırasında bir özel durum oluşturursa, durumu array tanımsız olur.

Bu yöntem bir O(n) işlemidir; burada n olur Length. Yalnızca sığ bir kopya gerçekleştirir.

Ayrıca bkz.

Şunlara uygulanır