Array.CopyTo Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Copia tutti gli elementi della matrice unidimensionale corrente nella matrice unidimensionale specificata.
Overload
| Nome | Descrizione |
|---|---|
| CopyTo(Array, Int32) |
Copia tutti gli elementi della matrice unidimensionale corrente nella matrice unidimensionale specificata a partire dall'indice della matrice di destinazione specificato. L'indice viene specificato come intero a 32 bit. |
| CopyTo(Array, Int64) |
Copia tutti gli elementi della matrice unidimensionale corrente nella matrice unidimensionale specificata a partire dall'indice della matrice di destinazione specificato. L'indice viene specificato come intero a 64 bit. |
Esempio
Nell'esempio di codice seguente viene illustrato come copiare un oggetto Array in un altro Arrayoggetto .
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
Nell'esempio di codice seguente viene illustrato come copiare un oggetto Array in un altro Array con un limite inferiore diverso da zero. Si noti che l'intera origine Array viene copiata, inclusi gli elementi vuoti che sovrascrivono gli elementi esistenti nella destinazione 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)
- Origine:
- Array.cs
- Origine:
- Array.cs
- Origine:
- Array.cs
- Origine:
- Array.cs
- Origine:
- Array.cs
Copia tutti gli elementi della matrice unidimensionale corrente nella matrice unidimensionale specificata a partire dall'indice della matrice di destinazione specificato. L'indice viene specificato come intero a 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)
Parametri
- array
- Array
Matrice unidimensionale che rappresenta la destinazione degli elementi copiati dalla matrice corrente.
- index
- Int32
Intero a 32 bit che rappresenta l'indice nella matrice di destinazione in corrispondenza del quale inizia la copia.
Implementazioni
Eccezioni
array è null.
index è minore del limite inferiore di array.
array è multidimensionale.
oppure
Il numero di elementi nella matrice di origine è maggiore del numero disponibile di elementi da index alla fine dell'oggetto di destinazione array.
Il tipo dell'origine Array non può essere eseguito automaticamente il cast al tipo della destinazione array.
La matrice di origine è multidimensionale.
Non è possibile eseguire il cast di almeno un elemento nell'origine Array al tipo di destinazione array.
Commenti
Questo metodo copia tutti gli elementi dell'istanza corrente della matrice nella array matrice di destinazione, a partire dall'indice index. La array matrice di destinazione deve essere già stata ridimensionata e deve avere un numero sufficiente di elementi per contenere gli elementi copiati. In caso contrario, il metodo genera un'eccezione.
Questo metodo supporta l'interfaccia System.Collections.ICollection . Se l'implementazione System.Collections.ICollection non è richiesta in modo esplicito, usare Copy per evitare un ulteriore riferimento indiretto.
Se questo metodo genera un'eccezione durante la copia, lo stato di array è indefinito.
Questo metodo è un'operazione O(n), dove n è Length. Esegue solo una copia superficiale.
Vedi anche
Si applica a
CopyTo(Array, Int64)
- Origine:
- Array.cs
- Origine:
- Array.cs
- Origine:
- Array.cs
- Origine:
- Array.cs
- Origine:
- Array.cs
Copia tutti gli elementi della matrice unidimensionale corrente nella matrice unidimensionale specificata a partire dall'indice della matrice di destinazione specificato. L'indice viene specificato come intero a 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)
Parametri
- array
- Array
Matrice unidimensionale che rappresenta la destinazione degli elementi copiati dalla matrice corrente.
- index
- Int64
Intero a 64 bit che rappresenta l'indice nella matrice di destinazione in corrispondenza del quale inizia la copia.
- Attributi
Eccezioni
array è null.
index non è compreso nell'intervallo di indici validi per array.
array è multidimensionale.
oppure
Il numero di elementi nella matrice di origine è maggiore del numero disponibile di elementi da index alla fine dell'oggetto di destinazione array.
Il tipo dell'origine Array non può essere eseguito automaticamente il cast al tipo della destinazione array.
L'origine Array è multidimensionale.
Non è possibile eseguire il cast di almeno un elemento nell'origine Array al tipo di destinazione array.
Commenti
Questo metodo copia tutti gli elementi dell'istanza corrente della matrice nella array matrice di destinazione, a partire dall'indice index. La array matrice di destinazione deve essere già stata ridimensionata e deve avere un numero sufficiente di elementi per contenere gli elementi copiati. In caso contrario, il metodo genera un'eccezione.
Questo metodo supporta l'interfaccia System.Collections.ICollection . Se l'implementazione System.Collections.ICollection non è richiesta in modo esplicito, usare Copy per evitare un ulteriore riferimento indiretto.
Se questo metodo genera un'eccezione durante la copia, lo stato di array è indefinito.
Questo metodo è un'operazione O(n), dove n è Length. Esegue solo una copia superficiale.