Array.CopyTo Metode
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Menyalin semua elemen array satu dimensi saat ini ke array satu dimensi yang ditentukan.
Overload
| Nama | Deskripsi |
|---|---|
| CopyTo(Array, Int32) |
Menyalin semua elemen array satu dimensi saat ini ke array satu dimensi yang ditentukan mulai dari indeks array tujuan yang ditentukan. Indeks ditentukan sebagai bilangan bulat 32-bit. |
| CopyTo(Array, Int64) |
Menyalin semua elemen array satu dimensi saat ini ke array satu dimensi yang ditentukan mulai dari indeks array tujuan yang ditentukan. Indeks ditentukan sebagai bilangan bulat 64-bit. |
Contoh
Contoh kode berikut menunjukkan cara menyalin ke yang Array lain Array.
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
Contoh kode berikut menunjukkan cara menyalin ke kode Array lain Array dengan batas bawah bukan nol. Perhatikan bahwa seluruh sumber Array disalin, termasuk elemen kosong yang menimpa elemen yang ada dalam target Array.
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)
- Sumber:
- Array.cs
- Sumber:
- Array.cs
- Sumber:
- Array.cs
- Sumber:
- Array.cs
- Sumber:
- Array.cs
Menyalin semua elemen array satu dimensi saat ini ke array satu dimensi yang ditentukan mulai dari indeks array tujuan yang ditentukan. Indeks ditentukan sebagai bilangan bulat 32-bit.
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
Array satu dimensi yang merupakan tujuan elemen yang disalin dari array saat ini.
- index
- Int32
Bilangan bulat 32-bit yang mewakili indeks dalam array tujuan tempat penyalinan dimulai.
Penerapan
Pengecualian
array adalah null.
index kurang dari batas arraybawah .
array bersifat multidaya.
-atau-
Jumlah elemen dalam array sumber lebih besar dari jumlah elemen yang tersedia dari index hingga akhir tujuan array.
Jenis sumber Array tidak dapat dilemparkan secara otomatis ke jenis tujuan array.
Array sumber bersifat multididensial.
Setidaknya satu elemen dalam sumber Array tidak dapat dilemparkan ke jenis tujuan array.
Keterangan
Metode ini menyalin semua elemen instans array saat ini ke array array tujuan, dimulai dari indeks index. Array array tujuan harus sudah di-dimensi dan harus memiliki jumlah elemen yang memadai untuk mengakomodasi elemen yang disalin. Jika tidak, metode melemparkan pengecualian.
Metode ini mendukung System.Collections.ICollection antarmuka. Jika penerapan System.Collections.ICollection tidak diperlukan secara eksplisit, gunakan Copy untuk menghindari ketidaktersediaan tambahan.
Jika metode ini melemparkan pengecualian saat menyalin, status array tidak terdefinisi.
Metode ini adalah operasi O(n), di mana n adalah Length. Ini hanya melakukan salinan dangkal.
Lihat juga
Berlaku untuk
CopyTo(Array, Int64)
- Sumber:
- Array.cs
- Sumber:
- Array.cs
- Sumber:
- Array.cs
- Sumber:
- Array.cs
- Sumber:
- Array.cs
Menyalin semua elemen array satu dimensi saat ini ke array satu dimensi yang ditentukan mulai dari indeks array tujuan yang ditentukan. Indeks ditentukan sebagai bilangan bulat 64-bit.
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
Array satu dimensi yang merupakan tujuan elemen yang disalin dari array saat ini.
- index
- Int64
Bilangan bulat 64-bit yang mewakili indeks dalam array tujuan tempat penyalinan dimulai.
- Atribut
Pengecualian
array adalah null.
index berada di luar rentang indeks yang valid untuk array.
array bersifat multidaya.
-atau-
Jumlah elemen dalam array sumber lebih besar dari jumlah elemen yang tersedia dari index hingga akhir tujuan array.
Jenis sumber Array tidak dapat dilemparkan secara otomatis ke jenis tujuan array.
Sumbernya Array multidaya.
Setidaknya satu elemen dalam sumber Array tidak dapat dilemparkan ke jenis tujuan array.
Keterangan
Metode ini menyalin semua elemen instans array saat ini ke array array tujuan, dimulai dari indeks index. Array array tujuan harus sudah di-dimensi dan harus memiliki jumlah elemen yang memadai untuk mengakomodasi elemen yang disalin. Jika tidak, metode melemparkan pengecualian.
Metode ini mendukung System.Collections.ICollection antarmuka. Jika penerapan System.Collections.ICollection tidak diperlukan secara eksplisit, gunakan Copy untuk menghindari ketidaktersediaan tambahan.
Jika metode ini melemparkan pengecualian saat menyalin, status array tidak terdefinisi.
Metode ini adalah operasi O(n), di mana n adalah Length. Ini hanya melakukan salinan dangkal.