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

C#에서 동적으로 배열을 만드는 방법 – ArrayList 활용 가이드

C#에서 일반 배열은 한 번 선언하면 크기를 변경할 수 없습니다. 하지만 실제 개발 환경에서는 데이터의 개수가 실행 중에 달라지는 경우가 많기 때문에, 크기가 고정된 정적 배열보다 유연하게 늘어나고 줄어들 수 있는 동적 배열(Dynamic Array)이 훨씬 유용합니다.

ArrayList란 무엇인가?

C#에서 동적으로 배열을 생성하려면 System.Collections 네임스페이스에 포함된 ArrayList 컬렉션을 사용할 수 있습니다. ArrayList는 다음과 같은 특징을 가집니다.

  • 요소를 개별적으로 인덱싱할 수 있는 순서 있는 컬렉션을 나타냅니다.
  • 동적 메모리 할당을 지원하여 요소 추가 시 크기가 자동으로 확장됩니다.
  • 항목의 추가(Add), 검색(Search), 정렬(Sort) 등 다양한 작업을 손쉽게 수행할 수 있습니다.

예제 코드

다음 예제는 C#에서 ArrayList를 사용해 동적으로 배열을 생성하고 요소를 추가하는 방법을 보여줍니다.

using System;
using System.Collections;
namespace CollectionApplication {
    class Program {
        static void Main(string[] args) {
            ArrayList al = new ArrayList();
            al.Add(99);
            al.Add(47);
            al.Add(64);
            Console.WriteLine("Count: {0}", al.Count);
            Console.Write("List: ");
            foreach (int i in al) {
                Console.Write(i + " ");
            }
            Console.WriteLine();
            Console.ReadKey();
        }
    }
}

실행 결과

Count: 3
List: 99 47 64

코드 설명

위 코드에서는 먼저 ArrayList 객체를 생성한 뒤, Add() 메서드를 통해 세 개의 정수 값을 순차적으로 추가했습니다. 별도의 크기 지정 없이 요소가 추가될 때마다 내부 용량이 자동으로 조정되는 것을 확인할 수 있습니다.

  • al.Count: 현재 리스트에 저장된 요소의 개수를 반환합니다.
  • foreach 문: 리스트의 모든 요소를 순회하며 출력합니다.

참고: 현대적인 대안, List<T>

ArrayList는 모든 요소를 object 타입으로 저장하기 때문에 값 타입을 다룰 때 박싱(boxing)과 언백싱(unboxing)으로 인한 성능 저하가 발생할 수 있습니다. 따라서 최신 C# 프로젝트에서는 제네릭 컬렉션인 List<T>(System.Collections.Generic 네임스페이스)을 사용하는 것이 권장됩니다. 사용법은 ArrayList와 거의 동일하면서도 타입 안전성과 성능 면에서 더 우수합니다.