C# 리스트(List)와 배열(Array)의 차이점
C#에서 리스트(List)는 제네릭 클래스(Generic Class)로, 다양한 데이터 타입을 저장할 수 있는 유연한 컬렉션입니다. 리스트를 선언하는 방법은 다음과 같습니다.
List<string> l = new List<string>();리스트에 요소 추가하기
리스트에 새로운 요소를 추가하려면 Add 메서드를 사용합니다.
l.Add("One");
l.Add("Two");
l.Add("Three");Add 메서드를 호출할 때마다 요소가 순차적으로 추가되며, 리스트의 크기는 자동으로 늘어납니다.
배열(Array)이란?
반면 배열은 동일한 타입의 요소들을 고정된 크기로 순차적으로 저장하는 자료구조입니다. 배열을 선언하는 방법은 다음과 같습니다.
int[] arr = new int[5];배열 초기화 및 요소 설정하기
배열은 선언과 동시에 중괄호를 사용해 요소를 초기화할 수 있습니다.
int[] arr = new int[5] {4, 8, 5};단, 배열 크기를 명시적으로 지정한 경우(예: 5)에는 반드시 해당 개수만큼의 요소를 제공해야 합니다. 그렇지 않으면 컴파일 오류가 발생합니다. 크기를 생략하고 초기화하면 지정한 요소 개수에 따라 배열 크기가 자동으로 결정됩니다.
int[] arr = new int[] {4, 8, 5}; // 크기 3으로 자동 지정핵심 차이점 비교
- 크기 유연성: 배열은 선언 시 크기가 고정되지만, 리스트는 요소 추가·삭제에 따라 크기가 동적으로 변합니다.
- 타입 지원: 리스트는 제네릭 클래스이므로 string, int 등 원하는 타입으로 자유롭게 생성할 수 있습니다.
- 요소 관리: 리스트는 Add 같은 편리한 메서드를 제공하지만, 배열은 인덱스를 통해 직접 값을 할당해야 합니다.
따라서 크기가 미리 정해져 있고 변경되지 않는 데이터에는 배열, 요소의 추가와 삭제가 빈번한 경우에는 리스트를 사용하는 것이 효율적입니다.