Array.CopyTo Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Copie tous les éléments du tableau unidimensionnel actuel dans le tableau unidimensionnel spécifié.
Surcharges
CopyTo(Array, Int32) |
Copie tous les éléments du tableau unidimensionnel actuel dans le tableau unidimensionnel spécifié en commençant à l'index du tableau de destination spécifié. L'index est spécifié en tant qu'entier 32 bits. |
CopyTo(Array, Int64) |
Copie tous les éléments du tableau unidimensionnel actuel dans le tableau unidimensionnel spécifié en commençant à l'index du tableau de destination spécifié. L'index est spécifié en tant qu'entier 64 bits. |
Exemples
L’exemple de code suivant montre comment copier un Array vers un autre 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
*/
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
L’exemple de code suivant montre comment copier un vers un Array autre Array avec une limite inférieure différente de zéro. Notez que la source Array entière est copiée, y compris les éléments vides qui remplacent les éléments existants dans la cible 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]:
*/
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)
- Source:
- Array.cs
- Source:
- Array.cs
- Source:
- Array.cs
Copie tous les éléments du tableau unidimensionnel actuel dans le tableau unidimensionnel spécifié en commençant à l'index du tableau de destination spécifié. L'index est spécifié en tant qu'entier 32 bits.
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)
Paramètres
- array
- Array
Tableau unidimensionnel constituant la destination des éléments copiés à partir du tableau actuel.
- index
- Int32
Entier 32 bits qui représente l’index de array
à partir duquel la copie commence.
Implémente
Exceptions
array
a la valeur null
.
index
est inférieur à la limite inférieure d’array
.
array
est multidimensionnel.
- ou -
Le nombre d’éléments dans le tableau source est supérieur au nombre d’éléments disponible entre index
et la fin du array
de destination.
Le type du Array source ne peut pas être converti automatiquement en type du array
de destination.
Le tableau source est multidimensionnel.
Au moins un élément du Array source ne peut pas être converti en type du array
de destination.
Remarques
Cette méthode copie tous les éléments de l’instance actuelle du tableau dans le array
tableau de destination, en commençant à l’index index
. Le array
tableau de destination doit déjà avoir été dimensionné et doit avoir un nombre suffisant d’éléments pour prendre en charge les éléments copiés. Sinon, la méthode lève une exception.
Cette méthode prend en charge l’interface System.Collections.ICollection . Si l’implémentation System.Collections.ICollection n’est pas explicitement requise, utilisez Copy pour éviter une indirection supplémentaire.
Si cette méthode lève une exception lors de la copie, l’état de array
n’est pas défini.
Cette méthode est une opération O(n
), où n
est Length. Il effectue une copie superficielle uniquement.
Voir aussi
S’applique à
CopyTo(Array, Int64)
- Source:
- Array.cs
- Source:
- Array.cs
- Source:
- Array.cs
Copie tous les éléments du tableau unidimensionnel actuel dans le tableau unidimensionnel spécifié en commençant à l'index du tableau de destination spécifié. L'index est spécifié en tant qu'entier 64 bits.
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)
Paramètres
- array
- Array
Tableau unidimensionnel constituant la destination des éléments copiés à partir du tableau actuel.
- index
- Int64
Entier 64 bits qui représente l’index de array
à partir duquel la copie commence.
- Attributs
Exceptions
array
a la valeur null
.
index
n’est pas compris dans la plage d’index valides pour array
.
array
est multidimensionnel.
- ou -
Le nombre d’éléments dans le tableau source est supérieur au nombre d’éléments disponible entre index
et la fin du array
de destination.
Le type du Array source ne peut pas être converti automatiquement en type du array
de destination.
Le Array source est multidimensionnel.
Au moins un élément du Array source ne peut pas être converti en type du array
de destination.
Remarques
Cette méthode copie tous les éléments de l’instance actuelle du tableau dans le array
tableau de destination, en commençant à l’index index
. Le array
tableau de destination doit déjà avoir été dimensionné et doit avoir un nombre suffisant d’éléments pour prendre en charge les éléments copiés. Sinon, la méthode lève une exception.
Cette méthode prend en charge l’interface System.Collections.ICollection . Si l’implémentation System.Collections.ICollection n’est pas explicitement requise, utilisez Copy pour éviter une indirection supplémentaire.
Si cette méthode lève une exception lors de la copie, l’état de array
n’est pas défini.
Cette méthode est une opération O(n
), où n
est Length. Il effectue une copie superficielle uniquement.