[C#] 배열과 System.Array

배열: 동일자료형을 연속적으로 담을 수 있는 컨테이너
배열은 참조형으로 C에서는 배열명 자체가 포인터로 사용되며 배열의 시작 주소를 가르킨다

//기본적인 선언방식
//자료형[] 배열명; 
int[] arrayName; 

//배열의 초기화 
int[] arrayName = new int[n]; //배열의 요소가 n개인 배열 생성.
int[] arrayName = new int[] {1, 2, 3, 4} // 배열의 크기가 4개이고 각 요소가 1, 2, 3, 4로 초기화된 배열 
int[] arrayName = new int[10] {1, 2, 0}; // 배열의 0, 1번지는 각각1, 2로 초기화. 나머지는 0으로 초기화

배열을 사용하다보면 값을 정렬하거나 특정 값의 인덱스를 몰라서 값을 찾을 때
흔히 for문이나 foreach를 사용한다.


int valueWhatYouWant = 10;

for(int i = 0; i < arrayName.Length; i++)
{
   if(arrayName[i] == valueWhatYouWant)
      Console.WriteLine("찾았다. 인덱스는 {0}", i); 
}
더 간단한 방법은 System.Array의 메서드를 사용하는 것이다.
.Net 프레임워크의 Common Type System에서 배열은 System.Array로부터 파생된 것으로
Array의 메서드를 사용해서 배열에서 특정 값을 찾아 인덱스를 반환하는 것 외에도
이진탐색, 초기화, 배열의 사이즈 조정 등이 가능하다.
위에서 작성한 코드에서 사용한 arrayName.Length의 Length는 System.Array의 프로퍼티 중 하나다.

위의 for문을 다음과 같이 표현할 수 있다.

int valueWhatYouWant = 10;
Console.WriteLine("찾았다. 인덱스는 {0}", 
Array.BinarySearch(arrayName, valueWhatYouWant));

//또는
Console.WriteLine("찾았다. 인덱스는 {0}", 
Array.IndexOf(arrayName, valueWhatYouWant));

// 배열 내에 찾는 값이 없으면 음수로 된 쓰래기 값이 나온다. 

Array의 더 많은 기능은 MSDN 에서 확인할 수 있다.

댓글

가장 많이 본 글