Enumerator обычно реализовывается в закрытом вложенном классе, в методах которого вы просто используете экземпляр вашей коллекции. Для написания полноценной коллекции на основе массива можно воспользоваться обобщенными интерфейсами ICollection<T>
/ IList<T>
. Для словарей - IDictionary<TKey, TValue>
и т. д. Не соглашусь с предыдущим решением "не создавайте собственные коллекции вообще" - коллекции нужно создавать, стандартные не всегда подходят для реализации некоторых моделей. Например, для WPF есть ObservableCollection<T>
, а что если нужен отслеживаемый словарь?