IList<T> 인터페이스
public interface IList<T> : ICollection<T>, IEnumerable<T>, IEnumerable
{
// 인덱서를 통해 특정 위치의 요소를 읽고 씀
T this[int index] { get; set; }
// 선형(linear search)를 이용해서 목록의 특정 요소에 접근
// 지정된 요소를 찾지 못하면 -1
int IndexOf(T item);
// 요소 삽입
void Insert(int index, T item);
// 요소 제거
void RemoveAt(int index);
}
- 특정 위치에 있는 요소에 접근하는 기능을 제공하는 컬렉션을 위한 표준 인터페이스
반응형
IList 인터페이스
public interface IList : ICollection, IEnumerable
{
object this[int index] { get; set; }
bool IsReadOnly { get; }
bool IsFixedSize { get; }
int Add(object value);
void Clear();
bool Contains(object value);
int IndexOf(object value);
void Insert(int index, object value);
void Remove(object value);
void RemoveAt(int index);
}
- ICollection에서 물려받은 멤버가 적기 때문에, IList에서 더 많은 멤버를 정의
- IList 인터페이스의 Add 메서드는 정수(새로 추가된 항목의 색인)을 돌려줌. 제네릭 버전은 void
그 밖에
- 범용 List<T> 클래스는 IList<T>와 IList의 최소한의 구현에 해당
- C# 배열도 IList의 제네릭 버전과 비제네릭 버전을 모두 구현
* 단, 요소를 추가/제거하는 메서드들은 명시적 인터페이스 구현에 의해 숨겨져 있으며,
호출시 NotSupportedException을 던짐
- IList의 인덱서를 통해서 다차원 배열에 접근하려 하면 ArgumentException 예외가 발생함
반응형
'C#' 카테고리의 다른 글
[C#] HashSet<T>, SortedSet<T> (0) | 2023.09.16 |
---|---|
[C#] BitArray (0) | 2023.09.14 |
[C#] Queue<T>, Queue, Stack<T>, Stack (0) | 2023.09.12 |
[C#] LinkedList<T>, LinkedListNode<T> (0) | 2023.09.10 |
[C#] ICollection<T>, ICollection (1) | 2023.08.31 |
[C#] AppContext (1) | 2023.08.30 |
[C#] Process (1) | 2023.08.29 |
[C#] Environment (0) | 2023.08.28 |