PathSegmentCollection.GetEnumerator Метод

Определение

Возвращает перечислитель, который может выполнять итерацию по коллекции.

public:
 System::Windows::Media::PathSegmentCollection::Enumerator GetEnumerator();
public System.Windows.Media.PathSegmentCollection.Enumerator GetEnumerator();
member this.GetEnumerator : unit -> System.Windows.Media.PathSegmentCollection.Enumerator
Public Function GetEnumerator () As PathSegmentCollection.Enumerator

Возвращаемое значение

Объект PathSegmentCollection.Enumerator , который может выполнять итерацию по коллекции.

Комментарии

Перечислители разрешают только чтение данных в коллекции. Перечислители нельзя использовать для изменения базовой коллекции.

Изначально перечислитель размещается перед первым элементом в коллекции. также возвращает перечислитель обратно в эту позицию. В этой позиции вызов Current вызывает исключение. Поэтому перед чтением значения MoveNextнеобходимо вызвать Current перечислитель к первому элементу коллекции.

Current возвращает один и тот же объект, пока MoveNextReset не вызывается либо вызывается. MoveNext задает Current для следующего элемента.

После прохождения конца коллекции перечислитель размещается после последнего элемента в коллекции и возвращает вызов MoveNextfalse. Если последний вызов MoveNext возвращен false, вызов Current вызывает исключение. Чтобы снова задать Current для первого элемента коллекции, можно вызвать Reset после этого MoveNext.

Перечислитель остается допустимым, пока коллекция остается неизменной. Если изменения вносятся в коллекцию, например добавление, изменение или удаление элементов, перечислитель неустранимо недопустим и следующий вызов MoveNext или Reset вызывает исключение InvalidOperationException. Если коллекция изменяется между MoveNext и Current, Current возвращает заданный элемент, даже если перечислитель уже недопустим.

Перечислитель не имеет монопольного доступа к коллекции; Таким образом, перечисление через коллекцию по сути не является потокобезопасной процедурой. Даже если коллекция синхронизирована, другие потоки по-прежнему могут изменить коллекцию, что приводит к возникновению исключения перечислителем. Чтобы гарантировать безопасность потоков во время перечисления, можно заблокировать коллекцию во время всего перечисления или поймать исключения, полученные из изменений, внесенных другими потоками.

Применяется к

См. также раздел