C#의 Array.ConstrainedCopy() 메서드는 소스 배열(Array)에서 지정한 시작 인덱스부터 일정 범위의 요소를 복사하여, 대상 배열의 지정한 인덱스 위치에 붙여넣는 데 사용됩니다. 이 메서드는 복사 작업이 원자적으로 수행되도록 보장하므로, 복사 중 예외가 발생하면 대상 배열이 변경되지 않습니다.
구문(Syntax)
public static void ConstrainedCopy (Array sourceArr, int sourceIndex, Array destinationArr, int destinationIndex, int length);
각 매개변수의 의미는 다음과 같습니다.
sourceArr − 복사할 데이터가 포함된 소스 배열입니다.
sourceIndex − 소스 배열에서 복사를 시작할 인덱스를 나타내는 32비트 정수입니다.
destinationArr − 데이터를 받을 대상 배열입니다.
destinationIndex − 대상 배열에 저장을 시작할 인덱스를 나타내는 32비트 정수입니다.
length − 복사할 요소의 개수를 나타내는 32비트 정수입니다.
예제(Example)
다음은 Array.ConstrainedCopy() 메서드를 구현한 예제 코드입니다. 소스 배열의 3번째 인덱스부터 4개의 요소를 대상 배열의 처음부터 복사합니다.
using System;
public class Demo{
public static void Main(){
int[] arrDest = new int[10];
Console.WriteLine("Array elements...");
int[] arrSrc = { 20, 50, 100, 150, 200, 300, 400};
for (int i = 0; i < arrSrc.Length; i++){
Console.Write("{0} ", arrSrc[i]);
}
Console.WriteLine();
Array.ConstrainedCopy(arrSrc, 3, arrDest, 0, 4);
Console.WriteLine("Destination Array: ");
for (int i = 0; i < arrDest.Length; i++){
Console.Write("{0} ", arrDest[i]);
}
}
}출력 결과(Output)
위 코드를 실행하면 다음과 같은 출력 결과를 얻을 수 있습니다.
Array elements... 20 50 100 150 200 300 400 Destination Array: 150 200 300 400 0 0 0 0 0 0
실행 결과를 살펴보면, 소스 배열(arrSrc)의 인덱스 3부터 4개의 요소인 150, 200, 300, 400이 대상 배열(arrDest)의 인덱스 0부터 순서대로 복사되었고, 나머지 위치에는 기본값인 0이 그대로 유지된 것을 확인할 수 있습니다.