Наряду с уже предложенными методами использования цикла foreach
я подумал также упомянуть, что любой объект, который реализует IEnumerable
, также предоставляет интерфейс IEnumerator
через метод GetEnumerator
. Хотя этот метод обычно не требуется, его можно использовать для ручной итерации по коллекциям, и он особенно полезен при написании собственных методов расширения для коллекций.
IEnumerable<T> mySequence;
using (var sequenceEnum = mySequence.GetEnumerator())
{
while (sequenceEnum.MoveNext())
{
// Do something with sequenceEnum.Current.
}
}
Главный пример - это когда вы хотите итерировать по двум последовательностям одновременно , что невозможно при цикле foreach
.