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

C#에서 배열의 크기를 조정할 수 있을까요? Array.Resize 활용법

C#에서는 한 번 생성된 배열의 크기를 직접 변경할 수 없습니다. 하지만 Array.Resize 메서드를 사용하면 기존 배열을 지정한 크기의 새로운 배열로 교체하는 방식으로 크기를 조정할 수 있습니다.

배열 선언 및 초기화

먼저 다음과 같이 문자형(char) 배열을 선언하고 일부 요소에 값을 할당해 보겠습니다.

char[] ch = new char[10];
ch[0] = 'a';
ch[1] = 'b';

Array.Resize로 크기 조정하기

Array.Resize 메서드는 첫 번째 인자로 ref 키워드가 붙은 배열 참조를, 두 번째 인자로 새로운 크기를 받습니다. 내부적으로는 지정된 크기의 새 배열을 생성한 뒤 기존 요소들을 복사하고, 원본 배열 참조를 새 배열로 교체합니다.

Array.Resize<char>(ref ch, 10);

전체 예제 코드

using System;

class Program {
   static void Main() {
      char[] ch = new char[10];
      ch[0] = 'a';
      ch[1] = 'b';

      // 배열 크기 조정
      Array.Resize<char>(ref ch, 10);

      // 새로운 요소에 값 설정
      ch[2] = 'c';
      ch[3] = 'd';
      ch[4] = 'e';
      ch[5] = 'f';
      ch[6] = 'g';
      ch[7] = 'h';
      ch[8] = 'i';
      ch[9] = 'j';

      Console.WriteLine("New Array: " + new string(ch));
   }
}

실행 결과

New Array: abcdefghij

참고: 동적 크기 조정이 필요하다면?

크기가 자주 변하는 데이터를 다룰 때는 매번 Array.Resize를 호출하는 것보다 List<T>와 같은 컬렉션을 사용하는 것이 더 효율적입니다. List는 내부적으로 용량(capacity)을 자동으로 관리하므로 요소의 추가와 삭제가 간편합니다. 또한 Array.Resize는 새 배열을 생성해 복사하는 작업을 수행하므로, 반복적으로 호출하면 성능 저하가 발생할 수 있다는 점도 유의해야 합니다.