C#

[C#] List

unihee1 2025. 2. 11. 20:49

1. List란?

배열과 유사하지만 크기가 동적으로 조정될 수 있는 자료구조이다. 

 

2. List 선언 및 초기화

List<자료형> 변수명 = new List<자료형>(); -> 선언

List<자료형> 변수명 = new List<자료형>{리스트에 들어갈 데이터}; ->초기화

 

3. 기본적인 메소드

  • 요소 추가 (Add)
리스트명.Add(10);

 

  • 여러 요소 한 번에 추가 (AddRange)

리스트명.AddRange(new int[] { 데이터 값 });

 

  • 특정 위치에 요소 삽입 (Insert)
리스트명. Insert(1, 15);

 

  • 요소 제거 (Remove, RemoveAt, RemoveRange)
리스트명.Remove(n); // 값이 n인 첫 번째 요소 제거
리스트명.RemoveAt(n); // n번 인덱스 요소 제거
리스트명.RemoveRange(n, n2); // 인덱스 n부터 n2개의 요소 제거

 

  • 리스트 검색 (Contains, IndexOf, Find)
자료형 변수명 = 리스트변수명.Contains(n);  // n이 있는지 확인
자료형 변수명 = 리스트변수명. IndexOf(n); // n의 인덱스 찾기
자료형 변수명 = 리스트변수명. Find(x => x > 25); // 특정 조건에 맞는 첫 번째 요소 찾기

 

  • 리스트 정렬 (Sort, Reverse)
리스트명.Sort();     // 오름차순 정렬
리스트명.Reverse();  // 내림차순 정렬

 

4. 다차원 리스트

2D 배열과 유사하며 동적으로 크기를 조절할 수 있다.

List<List<자료형>> 리스트명 = new List<List<자료형>>()
{
    new List<int> { 데이터 값 },
    new List<int> { ......},
    new List<int> { ......}
};

 

5. 리스트와 배열

특징 리스트 배열
크기 변경 가능 불가능
요소 변경 Add(), Remove() 등 제공 불가능(새 배열 할당 필요)
성능 일반적으로 배열보다 느림 빠름(메모리 연속 할당)

 

6. 리스트의 장점

  • 크기 조절이 가능하다
  • 요소 추가 및 삭제가 쉽
  • 가변 길이 2D 구조를 쉽게 만들 수 있다
  • 다양한 기능을 제공하여 데이터 조작이 훨씬 쉽다.
  • 컬렉션 기반 개발과 호환성이 좋다.