В чем смысл перечислителя в С#?
Определение "enumerator" в С#
Ответ 1
Перечислитель позволяет вам перечислять (перебирать) по набору элементов.
Вы можете сделать это, просто просмотрев участников интерфейса IEnumerator. Более конкретно, Enumerator точно знает, где вы находитесь в коллекции (текущий элемент) и где следующий элемент (метод MoveNext).
Ознакомьтесь с статьей Википедии об Итераторе:
Ответ 2
"Enumerator" - это имя платформы .NET Framework для итераторов. Страница Wikipedia на итераторах содержит хорошее введение в эту тему:
Для информации, специфичной для реализации .NET, страница MSDN интерфейса IEnumerator
содержит более подробную информацию:
В общем, итератор позволяет вам перебирать коллекцию. В С# итераторы чаще всего используют неявность через оператор foreach
:
foreach (myType o in myCollection)
{
// do something with o
}
Это эквивалентно следующему явному использованию итератора:
IEnumerator<myType> iter = myCollection.GetEnumerator();
while (iter.MoveNext())
{
var o = iter.Current;
// do something with o
}
Ответ 3
Вы используете перечислитель для итерации по набору элементов.
Один хороший способ сделать это - С# использует цикл foreach
.
Пример:
IList<string> actors = new List<string>();
actors.Add("Chuck Norris");
actors.Add("Denzel Washington");
actors.Add("Sylvester Stallone");
// iterate over the list using foreach
foreach (string actor in actors)
{
//...
}
Ответ 4
IEnumerable и IEnumarable имеют метод GetEnumerator(), который возвращает объект Enumerator
Перечислитель предоставляет метод GetNext(), который довольно понятен.
Перечислители - это то, что позволяет цикл foreach