[C#] 8.2.3 IList인터페이스

IList 인터페이스는 배열과 ArrayList의 기반 인터페이스입니다. IList 인터페이스에는 인덱서로 요소를 참조할 수 있는 멤버들을 약속하고 있습니다. 그리고 IList는 ICollection 인터페이스 기반의 형식이므로 앞에서 살펴본 ICollection에 약속한 멤버들에 대한 약속을 포함하게 됩니다. 여기에서는 새롭게 추가된 약속들에 대해서만 다룰게요.

ICollection 인터페이스에서는 요소를 추가할 때 사용하기 위해 Add 메서드와 Insert 메서드를 제공하고 있습니다. Add 메서드는 차례대로 보관할 때 사용하고 Insert 메서드는 원하는 인덱스 위치에 보관할 때 사용합니다.

 

만약, Add메서드로 1을 보관하고 Insert 메서드를 이용하여 인덱스 0에 2를 보관하면 보관된 순서는 2, 1이 됩니다. 다시 Add 메서드를 이용하여 3을 보관하면 2, 1, 3 순으로 보관되겠죠.

▶ Add메서드와 Insert 메서드를 이용하여 요소 보관

▶ 실행 결과

보관한 요소를 제거할 때는 Remove 메서드와 RemoveAt 메서드, Clear 메서드를 사용합니다. Remove 메서드는 제거할 요소를 인자로 전달하면 보관된 해당 요소를 제거해 줍니다. RemoveAt 메서드는 특정 인덱스 위치에 보관된 요소를 제거하며 Clear 메서드는 보관된 모든 요소를 제거합니다.

 

▶ Remove, RemoveAt, Clear 메서드를 이용하여 보관된 요소 제거

▶ 실행 결과

그리고 Contains 메서드를 이용하여 특정 요소가 보관되어 있는지 확인할 수 있으며 인덱서를 이용하여 보관한 요소를 변경하거나 참조할 수 있습니다. 이 외에도 컬렉션의 크기가 고정된 사이즈인지 확인하는 IsFixedSize 속성과 읽기만 가능한지에 대해 가져오기를 할 수 있는 IsReadOnly속성을 제공하고 있습니다.

 

▶ 보관한 요소 확인, 참조 및 변경

 

IList 인터페이스를 기반으로 정의한 형식은 모두 예제 코드와 같은 방식으로 사용할 수 있습니다.

▶ IList에서 약속한 멤버들