![[C#] ICollection<T>, ICollection](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F8fcid%2Fbtsr5YVzfk9%2FRwbO8sZCJf94DnB5AhL1rk%2Fimg.png)
![DANEW](https://t1.daumcdn.net/tistory_admin/static/manage/images/r3/default_L.png)
[C#] ICollection<T>, ICollectionC#2023. 8. 31. 15:00
Table of Contents
ICollection<T>, ICollection
IEnumerable<T> 인터페이스 (System.Collections.Generic)
지정된 형식의 컬렉션을 단순하게 반복할 수 있도록 지원하는 열거자를 노출합니다.
learn.microsoft.com
public interface ICollection<T> : IEnumerable<T>, IEnumerable
{
// 컬렉션의 크기를 파악
int Count { get; }
// 읽기 전용 어부를 판단
bool IsReadOnly { get; }
// 컬렉션에 항목을 추가
void Add(T item);
// 컬렉션을 비움
void Clear();
// 주어진 항목(요소)이 컬렉션에 존재하는지 판단
bool Contains(T item);
// 컬렉션을 배열로 복사하는 기능 - ToArray
void CopyTo(T[] array, int arrayIndex);
// 컬렉션에 항목을 제거
bool Remove(T item);
}
- 가산(countable) 컬렉션(저장된 요소들의 개수를 셀 수 있는 컬렉션)을 위한 표준 인터페이스
- IEnumerable<T>를 확장하므로 foreach 문을 이용해서 요소들을 훑는 기능도 제공
반응형
ICollection 인터페이스
ICollection 인터페이스 (System.Collections)
제네릭이 아닌 모든 컬렉션에 대한 크기, 열거자 및 동기화 메서드를 정의합니다.
learn.microsoft.com
public interface ICollection : IEnumerable
{
int Count { get; }
object SyncRoot { get; }
bool IsSynchronized { get; }
void CopyTo(Array array, int index);
}
- 비제네릭 ICollection도 가산 컬렉션 기능을 지원하지만, 추가 기능은 지원하지 않음
- 동기화 관련 속성이 정의되어 있음. 스레드 안정성이 컬렉션 자체가 제공해야 할 것이 아니기에 제네릭에는 없음
인터페이스 구현
- 읽기 전용 ICollection<T>를 구현할 때에는 Add, Remove, Clear 메서드가 반드시 NotSupportedException을 던져야 함
- 보통의 경우 이 인터페이스들은 IList나 IDictionary와 함께 구현 함
반응형
'C#' 카테고리의 다른 글
[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#] IList<T>, IList (0) | 2023.09.08 |
[C#] AppContext (1) | 2023.08.30 |
[C#] Process (1) | 2023.08.29 |
[C#] Environment (0) | 2023.08.28 |
[C#] Console (1) | 2023.08.27 |
![DANEW](https://t1.daumcdn.net/tistory_admin/static/manage/images/r3/default_L.png)
@DANEW :: 별을 스치는 바람
초보 DBA 이야기입니다.
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!