Computer >> 컴퓨터 >  >> 프로그래밍 >> C#

C# Array.ConstrainedCopy() 메서드 사용법과 예제

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이 그대로 유지된 것을 확인할 수 있습니다.