Array.ConstrainedCopy(Array, Int32, Array, Int32, Int32) Metodo

Definizione

Copia un intervallo di elementi da un Array oggetto a partire dall'indice di origine specificato e li incolla in un altro Array oggetto a partire dall'indice di destinazione specificato. Garantisce che tutte le modifiche vengano annullate se la copia non riesce completamente.

public:
 static void ConstrainedCopy(Array ^ sourceArray, int sourceIndex, Array ^ destinationArray, int destinationIndex, int length);
public static void ConstrainedCopy(Array sourceArray, int sourceIndex, Array destinationArray, int destinationIndex, int length);
static member ConstrainedCopy : Array * int * Array * int * int -> unit
Public Shared Sub ConstrainedCopy (sourceArray As Array, sourceIndex As Integer, destinationArray As Array, destinationIndex As Integer, length As Integer)

Parametri

sourceArray
Array

Oggetto Array contenente i dati da copiare.

sourceIndex
Int32

Intero a 32 bit che rappresenta l'indice in in sourceArray corrispondenza del quale inizia la copia.

destinationArray
Array

Oggetto Array che riceve i dati.

destinationIndex
Int32

Intero a 32 bit che rappresenta l'indice in in destinationArray corrispondenza del quale inizia l'archiviazione.

length
Int32

Intero a 32 bit che rappresenta il numero di elementi da copiare.

Eccezioni

sourceArray è null.

oppure

destinationArray è null.

sourceArray e destinationArray hanno ranghi diversi.

Il sourceArray tipo non è né uguale a né derivato dal destinationArray tipo .

Non è possibile eseguire il cast di almeno un elemento in sourceArray al tipo di destinationArray.

sourceIndex è minore del limite inferiore della prima dimensione di sourceArray.

oppure

destinationIndex è minore del limite inferiore della prima dimensione di destinationArray.

oppure

length è minore di zero.

length è maggiore del numero di elementi da sourceIndex alla fine di sourceArray.

oppure

length è maggiore del numero di elementi da destinationIndex alla fine di destinationArray.

Commenti

I sourceArray parametri e destinationArray devono avere lo stesso numero di dimensioni. Il sourceArray tipo deve essere uguale o derivato dal destinationArray tipo. In caso contrario, viene generata un'eccezione ArrayTypeMismatchException . A differenza di Copy, ConstrainedCopy verifica la compatibilità dei tipi di matrice prima di eseguire qualsiasi operazione.

Quando si copia tra matrici multidimensionali, la matrice si comporta come una matrice unidimensionale lunga, in cui le righe (o le colonne) sono concettualmente disposte end-to-end. Ad esempio, se una matrice ha tre righe (o colonne) con quattro elementi ciascuno, la copia di sei elementi dall'inizio della matrice copia tutti e quattro gli elementi della prima riga (o colonna) e i primi due elementi della seconda riga (o colonna). Per iniziare a copiare dal secondo elemento della terza riga (o colonna), sourceIndex deve essere il limite superiore della prima riga (o colonna) più la lunghezza della seconda riga (o colonna) più due.

Se sourceArray e destinationArray si sovrappongono, questo metodo si comporta come se i valori originali di sourceArray siano stati conservati in una posizione temporanea prima destinationArray di essere sovrascritti.

[C++]

Questo metodo equivale alla funzione memmoveC/C++ standard, non memcpya .

Le matrici possono essere di tipo riferimento o matrici di tipo valore. Se sourceArray e destinationArray sono entrambe matrici di tipo riferimento o entrambe matrici di tipo Object, viene eseguita una copia superficiale. Una copia superficiale di un oggetto Array è un nuovo Array oggetto contenente riferimenti agli stessi elementi dell'oggetto originale Array. Gli elementi stessi o qualsiasi elemento a cui fanno riferimento gli elementi non vengono copiati. Al contrario, una copia completa di un Array copia gli elementi e tutto direttamente o indirettamente a cui fanno riferimento gli elementi.

Se questo metodo genera un'eccezione durante la copia, rimane destinationArray invariato, pertanto ConstrainedCopy può essere usato all'interno di un'area di esecuzione vincolata (Cer).

Questo metodo è un'operazione $O(n)$, dove $n$ è length.

Si applica a

Vedi anche