BLOG
C#

C# 제너릭 컬렉션 : List 사용하기


March 10, 2022, 11:40 p.m.



C#에서 컬렉션은 유용하게 쓰입니다. 일반적인 배열의 골치 아픈 문제들을 해결해 주기 때문이죠. C#의 대표적인 컬렉션 클래스는 List 입니다.

여기서 T는 type을 의미하며 해당 타입이 들어가는 List를 의미합니다. 예를들어 List는 정수가 들어가는 리스트를 말하는 것이겠죠?

List는 아래와 같이 선언합니다.

List<int> hello = new List<int>();

int 유형을 지정해 주었기 때문에 해당 유형만 hello 리스트에 저장 가능합니다. 리스트에는 .Add()를 이용해 값을 집어 넣을 수 있습니다.

hello.Add(10);
hello.Add(11);

[] 인덱싱을 통해 해당 객체를 얻을 수 있습니다.

hello[1]; // 11

.Count를 이용해 해당 리스트에 들어있는 객체의 수를 얻어올 수 있습니다.

hello.Count; // 2

.Contains를 이용해 해당 객체가 있는지 알아냅니다.

hello.Contains(10); // true

.IndexOf()를 이용해 해당 객체의 인덱스를 알아냅니다.

hello.IndexOf(11); // 1

.Remove를 통해 해당 객체를 제거합니다.

hello.Remove(10); // 10이 리스트에서 사라집니다.

List에는 foreach라는 특별한 형태의 순환문을 적용할 수 있습니다. 아래와 같이요. 파이썬을 사용해 보신 분이라면 쉽게 이해가 가능할 거에요.

foreach (int i in hello)
{
    print(i);
}

// 10
// 11

foreach문을 통해 hello에 있는 객체를 하나씩 꺼내서 i에 저장합니다. 해당 리스트의 객체를 훑어보며 어떤 작업을 할 때 유용하게 쓰이겠죠?

.RemoveAt() 을 통해 해당 인덱스의 객체를 리스트에서 제거합니다.

hello.RemoveAt(1); // 인덱스 1의 데이터 11이 사라집니다.

.Clear()를 통해 해당 리스트의 모든 객체를 제거합니다.

이러한 List의 메서드들은 다 ICollection 인터페이스로부터 나옵니다. 즉, 이것이 리스트와 같은 제너릭 컬렉션의 기초 인터페이스 입니다. 이것 말고도 List는 IList, IEnumerable와 같은 인터페이스의 상속을 받습니다. IEnumerable은 foreach를 가능하게 해줍니다. 제너릭 컬렉션의 이런 기본 인터페이스들은 앞으로 다뤄보도록 하겠습니다.

List Generic



Search