Este artículo se tradujo automáticamente. Para ver el artículo en inglés, active la casilla Inglés. Además, puede mostrar el texto en inglés en una ventana emergente si mueve el puntero del mouse sobre el texto.
Traducción
Inglés

Método Array.ConstrainedCopy (Array, Int32, Array, Int32, Int32)

 

Copia un intervalo de elementos de un objeto Array a partir del índice de origen especificado y los pega en otro objeto Array a partir del índice de destino especificado. Garantiza que se deshacen todos los cambios si la copia no se realiza de forma totalmente correcta.

Espacio de nombres:   System
Ensamblado:  mscorlib (en mscorlib.dll)

public static void ConstrainedCopy(
	Array sourceArray,
	int sourceIndex,
	Array destinationArray,
	int destinationIndex,
	int length
)

Parámetros

sourceArray
Type: System.Array

Array que contiene los datos que se van a copiar.

sourceIndex
Type: System.Int32

Entero de 32 bits que representa el índice de la sourceArray en la que se empieza a copiar.

destinationArray
Type: System.Array

Array que recibe los datos.

destinationIndex
Type: System.Int32

Entero de 32 bits que representa el índice de la destinationArray en la que se empieza a almacenar.

length
Type: System.Int32

Entero de 32 bits que representa el número de elementos que se van a copiar.

Exception Condition
ArgumentNullException

El valor de sourceArray es null.

-o-

El valor de destinationArray es null.

RankException

sourceArray y destinationArray tienen clasificaciones diferentes.

ArrayTypeMismatchException

El tipo sourceArray no es el mismo ni se deriva del tipo destinationArray.

InvalidCastException

Al menos un elemento de sourceArray no se puede convertir al tipo de destinationArray.

ArgumentOutOfRangeException

sourceIndex es menor que el límite inferior de la primera dimensión de sourceArray.

-o-

destinationIndex es menor que el límite inferior de la primera dimensión de destinationArray.

-o-

length es menor que cero.

ArgumentException

length es mayor que el número de elementos desde sourceIndex hasta el final de sourceArray.

-o-

length es mayor que el número de elementos desde destinationIndex hasta el final de destinationArray.

El sourceArray y destinationArray parámetros deben tener el mismo número de dimensiones. El sourceArray tipo debe ser igual o derivado de la destinationArray escriba; en caso contrario, un ArrayTypeMismatchException se produce. A diferencia de Copy, ConstrainedCopy comprueba la compatibilidad de los tipos de matriz antes de realizar cualquier operación.

Al copiar datos entre las matrices multidimensionales, la matriz se comporta como una matriz unidimensional larga, donde las filas (o columnas) se distribuyen conceptualmente-to-end. Por ejemplo, si una matriz tiene tres filas (o columnas) con cuatro elementos cada uno, copias seis elementos desde el principio de la matriz copiaría los cuatro elementos de la primera fila (o columna) y los dos primeros elementos de la segunda fila (o columna). Para empezar a copiar en el segundo elemento del tercer fila (o columna), sourceIndex debe ser el límite superior de la primera fila (o columna) y la longitud de la segunda fila (o columna) más dos.

Si sourceArray y destinationArray se superponen, este método se comporta como si los valores originales de sourceArray se conservan en una ubicación temporal antes de destinationArray se sobrescribe.

[C++]

Este método es equivalente a la función de C o C++ estándar memmove, no memcpy.

Las matrices pueden ser matrices de tipo de referencia o matrices de tipo de valor. Si sourceArray y destinationArray son ambas matrices de tipo de referencia o ambas matrices de tipo Object, se realiza una copia superficial. Una copia superficial de un Array es una nueva Array que contienen referencias a los mismos elementos que el original Array. Los elementos no se copian a sí mismos o cualquier referencia a los elementos. En cambio, una copia profunda de un Array copia los elementos y todo lo que hace referencia directa o indirectamente por los elementos.

Si este método produce una excepción durante la copia, la destinationArray permanece sin cambios; por lo tanto, ConstrainedCopy puede utilizarse dentro de una región de ejecución restringida (Cer).

Este método es una O (n) operación, donde n es length.

Plataforma universal de Windows
Disponible desde 8
.NET Framework
Disponible desde 2.0
Biblioteca de clases portable
Se admite en: plataformas portátiles de .NET
Silverlight
Disponible desde 4.0
Windows Phone Silverlight
Disponible desde 8.0
Windows Phone
Disponible desde 8.1
Volver al principio
Mostrar: