SingleKeyFrameCollection.GetEnumerator Метод

Определение

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

public:
 virtual System::Collections::IEnumerator ^ GetEnumerator();
public System.Collections.IEnumerator GetEnumerator ();
abstract member GetEnumerator : unit -> System.Collections.IEnumerator
override this.GetEnumerator : unit -> System.Collections.IEnumerator
Public Function GetEnumerator () As IEnumerator

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

IEnumerator

IEnumerator, который служит для прохода по коллекции.

Реализации

Комментарии

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

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

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

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

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

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

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