SizeKeyFrameCollection.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 для следующего элемента.

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

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

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

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