클래스가 개체 컬렉션을 나타내는 경우 이 인터페이스를 구현한다.
인터페이스에는 Count 속성, IsReadOnly 속성 및 Add(), Clear(), Contains(), CopyTo(), Remove() 및
GetEnumerator() 메서드의 구현이 필요하다.
public class MyCollection<T> : ICollection<T>
{
private List<T> data = new List<T>();
public int Count => data.Count;
public bool IsReadOnly => false;
public void Add(T item)
{
data.Add(item);
}
public void Clear()
{
data.Clear();
}
public bool Contains(T item)
{
return data.Contains(item);
}
public void CopyTo(T[] array, int arrayIndex)
{
data.CopyTo(array, arrayIndex);
}
public bool Remove(T item)
{
return data.Remove(item);
}
public IEnumerator<T> GetEnumerator()
{
return data.GetEnumerator();
}
IEnumerator IEnumerable.GetEnumerator()
{
return GetEnumerator();
}
}
이 예제에서 MyCollection<T> 클래스는 ICollection 인터페이스를 구현하여
개체 컬렉션을 나타냅니다. Count, IsReadOnly, Add, Clear, Contains, CopyTo, Remove 및
GetEnumerator 메서드는 컬렉션 작업을 위한 기능을 제공합니다.