클래스가 개체 컬렉션을 나타낼 때

클래스가 개체 컬렉션을 나타내는 경우 이 인터페이스를 구현한다.

인터페이스에는 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 메서드는 컬렉션 작업을 위한 기능을 제공합니다.