Array.CopyTo Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Kopiuje wszystkie elementy bieżącej jednowymiarowej tablicy do określonej tablicy jednowymiarowej.
Przeciążenia
| Nazwa | Opis |
|---|---|
| CopyTo(Array, Int32) |
Kopiuje wszystkie elementy bieżącej tablicy jednowymiarowej do określonej jednowymiarowej tablicy rozpoczynającej się od określonego indeksu tablicy docelowej. Indeks jest określony jako 32-bitowa liczba całkowita. |
| CopyTo(Array, Int64) |
Kopiuje wszystkie elementy bieżącej tablicy jednowymiarowej do określonej jednowymiarowej tablicy rozpoczynającej się od określonego indeksu tablicy docelowej. Indeks jest określany jako 64-bitowa liczba całkowita. |
Przykłady
W poniższym przykładzie kodu pokazano, jak skopiować element Array do innego Arrayelementu .
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
W poniższym przykładzie kodu pokazano, jak skopiować element Array do innej z Array niezerową granicą. Należy pamiętać, że całe źródło Array jest kopiowane, w tym puste elementy, które zastępują istniejące elementy w obiekcie docelowym 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)
- Źródło:
- Array.cs
- Źródło:
- Array.cs
- Źródło:
- Array.cs
- Źródło:
- Array.cs
- Źródło:
- Array.cs
Kopiuje wszystkie elementy bieżącej tablicy jednowymiarowej do określonej jednowymiarowej tablicy rozpoczynającej się od określonego indeksu tablicy docelowej. Indeks jest określony jako 32-bitowa liczba całkowita.
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)
Parametry
- array
- Array
Tablica jednowymiarowa, która jest miejscem docelowym elementów skopiowanych z bieżącej tablicy.
- index
- Int32
32-bitowa liczba całkowita reprezentująca indeks w tablicy docelowej, w której rozpoczyna się kopiowanie.
Implementuje
Wyjątki
Parametr array ma wartość null.
indexwartość jest mniejsza niż dolna granica .array
array jest wielowymiarowa.
— lub —
Liczba elementów w tablicy źródłowej jest większa niż dostępna liczba elementów z index do końca miejsca docelowego array.
Typ źródła Array nie może być rzutowy automatycznie na typ miejsca docelowego array.
Tablica źródłowa jest wielowymiarowa.
Co najmniej jeden element w źródle Array nie może być rzutowy do typu docelowego array.
Uwagi
Ta metoda kopiuje wszystkie elementy bieżącego wystąpienia tablicy do array tablicy docelowej, zaczynając od indeksu index. Tablica docelowa array musi już być wymiarowana i musi mieć wystarczającą liczbę elementów, aby pomieścić skopiowane elementy. W przeciwnym razie metoda zgłasza wyjątek.
Ta metoda obsługuje System.Collections.ICollection interfejs. Jeśli implementacja System.Collections.ICollection nie jest jawnie wymagana, użyj polecenia Copy , aby uniknąć dodatkowego pośrednia.
Jeśli ta metoda zgłasza wyjątek podczas kopiowania, stan jest array niezdefiniowany.
Ta metoda jest operacją O(n), gdzie n to Length. Wykonuje tylko płytkią kopię.
Zobacz też
Dotyczy
CopyTo(Array, Int64)
- Źródło:
- Array.cs
- Źródło:
- Array.cs
- Źródło:
- Array.cs
- Źródło:
- Array.cs
- Źródło:
- Array.cs
Kopiuje wszystkie elementy bieżącej tablicy jednowymiarowej do określonej jednowymiarowej tablicy rozpoczynającej się od określonego indeksu tablicy docelowej. Indeks jest określany jako 64-bitowa liczba całkowita.
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)
Parametry
- array
- Array
Tablica jednowymiarowa, która jest miejscem docelowym elementów skopiowanych z bieżącej tablicy.
- index
- Int64
64-bitowa liczba całkowita reprezentująca indeks w tablicy docelowej, w której rozpoczyna się kopiowanie.
- Atrybuty
Wyjątki
Parametr array ma wartość null.
index znajduje się poza zakresem prawidłowych indeksów dla elementu array.
array jest wielowymiarowa.
— lub —
Liczba elementów w tablicy źródłowej jest większa niż dostępna liczba elementów z index do końca miejsca docelowego array.
Typ źródła Array nie może być rzutowy automatycznie na typ miejsca docelowego array.
Źródło Array jest wielowymiarowe.
Co najmniej jeden element w źródle Array nie może być rzutowy do typu docelowego array.
Uwagi
Ta metoda kopiuje wszystkie elementy bieżącego wystąpienia tablicy do array tablicy docelowej, zaczynając od indeksu index. Tablica docelowa array musi już być wymiarowana i musi mieć wystarczającą liczbę elementów, aby pomieścić skopiowane elementy. W przeciwnym razie metoda zgłasza wyjątek.
Ta metoda obsługuje System.Collections.ICollection interfejs. Jeśli implementacja System.Collections.ICollection nie jest jawnie wymagana, użyj polecenia Copy , aby uniknąć dodatkowego pośrednia.
Jeśli ta metoda zgłasza wyjątek podczas kopiowania, stan jest array niezdefiniowany.
Ta metoda jest operacją O(n), gdzie n to Length. Wykonuje tylko płytkią kopię.