Во многих наших проектах я видел несколько пользовательских коллекций/классов контейнеров, которые содержат некую общую коллекцию, например. a List(of T)
класс.Когда вы должны использовать IEnumerable и GetEnumerator?
Обычно они имеют метод GetXXX, который возвращает IEnumerable любого типа, который использует пользовательский класс коллекции, поэтому внутренняя коллекция может быть выполнена итерацией с использованием цикла foreach.
например.
public IEnumerable<UploadState> GetStates
{
get
{
return new List<UploadState>(m_states);
}
}
Мой вопрос заключается в том, что если эти классы вместо реализуют интерфейс IEnumerable
и вызвать GetEnumerator
на самом списке.
Есть ли предпочтительный способ, или это зависит от разработчика?
Что такое тип m_states? Просто интересно, почему он обернут «новым списком <>» и возвращается как «IEnumerable <>» – sll
http://msdn.microsoft.com/en-us/library/system.collections.ienumerable.getenumerator.aspx –