Array.ConstrainedCopy(Array, Int32, Array, Int32, Int32) Array.ConstrainedCopy(Array, Int32, Array, Int32, Int32) Array.ConstrainedCopy(Array, Int32, Array, Int32, Int32) Array.ConstrainedCopy(Array, Int32, Array, Int32, Int32) Method

Definizione

Copia un intervallo di elementi da un oggetto Array a partire dall'indice di origine specificato e lo incolla in un altro oggetto Array a partire dall'indice di destinazione specificato.Copies a range of elements from an Array starting at the specified source index and pastes them to another Array starting at the specified destination index. Garantisce che tutte le modifiche vengano annullate se la copia non riesce completamente.Guarantees that all changes are undone if the copy does not succeed completely.

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 Array Array Array

Oggetto Array che contiene i dati da copiare.The Array that contains the data to copy.

sourceIndex
Int32 Int32 Int32 Int32

Intero a 32 bit che rappresenta l'indice in sourceArray da cui viene avviata la copia.A 32-bit integer that represents the index in the sourceArray at which copying begins.

destinationArray
Array Array Array Array

Oggetto Array che riceve i dati.The Array that receives the data.

destinationIndex
Int32 Int32 Int32 Int32

Intero a 32 bit che rappresenta l'indice in destinationArray da cui viene avviata l'archiviazione.A 32-bit integer that represents the index in the destinationArray at which storing begins.

length
Int32 Int32 Int32 Int32

Intero a 32 bit che rappresenta il numero degli elementi da copiare.A 32-bit integer that represents the number of elements to copy.

Eccezioni

sourceArray è null.sourceArray is null.

-oppure--or- destinationArray è null.destinationArray is null.

sourceArray e destinationArray hanno classificazioni diverse.sourceArray and destinationArray have different ranks.

Il tipo sourceArray non è né lo stesso né derivato dal tipo destinationArray.The sourceArray type is neither the same as nor derived from the destinationArray type.

Non è possibile eseguire il cast di almeno un elemento in sourceArray al tipo di destinationArray.At least one element in sourceArray cannot be cast to the type of destinationArray.

sourceIndex è minore del limite inferiore della prima dimensione di sourceArray.sourceIndex is less than the lower bound of the first dimension of sourceArray.

-oppure--or- destinationIndex è minore del limite inferiore della prima dimensione di destinationArray.destinationIndex is less than the lower bound of the first dimension of destinationArray.

-oppure--or- length è minore di zero.length is less than zero.

length è maggiore del numero di elementi compresi tra sourceIndex e la fine di sourceArray.length is greater than the number of elements from sourceIndex to the end of sourceArray.

-oppure--or- length è maggiore del numero di elementi compresi tra destinationIndex e la fine di destinationArray.length is greater than the number of elements from destinationIndex to the end of destinationArray.

Commenti

I parametri sourceArray e destinationArray devono avere lo stesso numero di dimensioni.The sourceArray and destinationArray parameters must have the same number of dimensions. Il tipo sourceArray deve essere uguale o derivato dal tipo destinationArray; in caso contrario, viene generata un'ArrayTypeMismatchException.The sourceArray type must be the same as or derived from the destinationArray type; otherwise, an ArrayTypeMismatchException is thrown. A differenza di Copy, ConstrainedCopy verifica la compatibilità dei tipi di matrice prima di eseguire qualsiasi operazione.Unlike Copy, ConstrainedCopy verifies the compatibility of the array types before performing any operation.

Quando si esegue la copia tra matrici multidimensionali, la matrice si comporta come una matrice unidimensionale lunga, in cui le righe (o colonne) sono concettualmente definite end-to-end.When copying between multidimensional arrays, the array behaves like a long one-dimensional array, where the rows (or columns) are conceptually laid end-to-end. Se, ad esempio, una matrice include tre righe (o colonne) con quattro elementi ciascuno, la copia di sei elementi dall'inizio della matrice comporterebbe la copia di tutti e quattro gli elementi della prima riga (o colonna) e dei primi due elementi della seconda riga o colonna.For example, if an array has three rows (or columns) with four elements each, copying six elements from the beginning of the array would copy all four elements of the first row (or column) and the first two elements of the second row (or column). Per avviare la copia 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.To start copying from the second element of the third row (or column), sourceIndex must be the upper bound of the first row (or column) plus the length of the second row (or column) plus two.

Se sourceArray e destinationArray si sovrappongono, questo metodo si comporta come se i valori originali di sourceArray fossero conservati in un percorso temporaneo prima della sovrascrittura di destinationArray.If sourceArray and destinationArray overlap, this method behaves as if the original values of sourceArray were preserved in a temporary location before destinationArray is overwritten.

[C++][C++]

Questo metodo equivale a C/C++ function standard memmove, non memcpy.This method is equivalent to the standard C/C++ function memmove, not memcpy.

Le matrici possono essere matrici di tipi di riferimento o matrici di tipi di valore.The arrays can be reference-type arrays or value-type arrays. Se sourceArray e destinationArray sono entrambe matrici di tipo riferimento o sono entrambe matrici di tipo Object, viene eseguita una copia superficiale.If sourceArray and destinationArray are both reference-type arrays or are both arrays of type Object, a shallow copy is performed. Una copia superficiale di un Array è un nuovo Array che contiene riferimenti agli stessi elementi del Array originale.A shallow copy of an Array is a new Array containing references to the same elements as the original Array. Gli elementi stessi o qualsiasi elemento a cui fanno riferimento gli elementi non vengono copiati.The elements themselves or anything referenced by the elements are not copied. Al contrario, una copia completa di un Array copia gli elementi e tutti gli elementi a cui fa riferimento direttamente o indirettamente.In contrast, a deep copy of an Array copies the elements and everything directly or indirectly referenced by the elements.

Se questo metodo genera un'eccezione durante la copia, il destinationArray rimane invariato; Pertanto, ConstrainedCopy può essere utilizzato all'interno di un'area a esecuzione vincolata (Cer).If this method throws an exception while copying, the destinationArray remains unchanged; therefore, ConstrainedCopy can be used within a constrained execution region (Cer).

Questo metodo è un'operazione O (n), in cui n è length.This method is an O(n) operation, where n is length.

Si applica a

Vedi anche