C#의 Array.Clear() 메서드는 배열에서 지정한 범위의 요소를 지우고, 해당 요소들을 각 데이터 타입의 기본값(default)으로 설정하는 데 사용됩니다. 예를 들어 정수형(int) 배열은 0으로, 참조형 배열은 null로 초기화됩니다. 이 메서드는 배열 전체가 아닌 특정 범위의 요소만 선택적으로 초기화할 수 있다는 점이 특징입니다.
문법(Syntax)
public static void Clear(Array arr, int index, int len);
매개변수 설명
- arr: 요소를 지울 대상 배열입니다.
- index: 지우기를 시작할 요소의 시작 인덱스입니다.
- len: 시작 인덱스부터 지울 요소의 개수입니다.
이제 Array.Clear() 메서드를 실제로 구현한 예제를 살펴보겠습니다.
예제 1: 1차원 배열에서 요소 지우기
using System;
public class Demo{
public static void Main(){
Console.WriteLine("Array elements...");
int[] arr = { 20, 50, 100, 150, 200, 300, 400, 450, 500, 600, 800, 1000, 1500, 2000 };
for (int i = 0; i < 14; i++){
Console.Write("{0} ", arr[i]);
}
Console.WriteLine();
Console.WriteLine("Clearing some elements in a range...");
Array.Clear(arr, 5, 9);
for (int i = 0; i < 14; i++){
Console.Write("{0} ", arr[i]);
}
Console.WriteLine();
}
}실행 결과
Array elements... 20 50 100 150 200 300 400 450 500 600 800 1000 1500 2000 Clearing some elements in a range... 20 50 100 150 200 0 0 0 0 0 0 0 0 0
위 예제에서 Array.Clear(arr, 5, 9)는 인덱스 5부터 9개의 요소를 지우도록 지시합니다. 따라서 인덱스 5부터 13까지의 값이 모두 기본값인 0으로 변경된 것을 확인할 수 있습니다.
예제 2: 2차원 배열에서 요소 지우기
Array.Clear() 메서드는 다차원 배열에도 적용할 수 있습니다. 다차원 배열의 경우 요소는 행 단위가 아닌 선형(linear) 순서로 처리됩니다.
using System;
public class Demo{
public static void Main(){
Console.WriteLine("Array elements...");
int[] arr = { {20, 50, 100, 120}, {150, 200, 300, 350}, {400, 450, 500, 550}, {600, 800, 1000, 1200} };
for (int i = 0; i < 4; i++){
for (int j = 0; j < 4; j++){
Console.Write("{0} ", arr[i,j]);
}
Console.WriteLine();
}
Console.WriteLine();
Console.WriteLine("Clearing some elements in a range...");
Array.Clear(arr, 5, 9);
for (int i = 0; i < 4; i++){
for (int j = 0; j < 4; j++){
Console.Write("{0} ", arr[i,j]);
}
Console.WriteLine();
}
Console.WriteLine();
}
}실행 결과
Array elements... 20 50 100 120 150 200 300 350 400 450 500 550 600 800 1000 1200 Clearing some elements in a range... 20 50 100 120 150 0 0 0 0 0 0 0 0 0 1000 1200
2차원 배열은 내부적으로 연속된 메모리 공간에 저장되므로, 인덱스 5(두 번째 행의 두 번째 요소)부터 9개의 요소가 순서대로 0으로 초기화되었습니다. 이처럼 Array.Clear()는 1차원뿐 아니라 다차원 배열에서도 유연하게 활용할 수 있습니다.