PersonalizationStateInfoCollection.GetEnumerator Метод

Определение

Возвращает стандартный перечислитель для итерации коллекции.Returns a standard enumerator capable of iterating over the collection. Этот метод не может быть унаследован.This method cannot be inherited.

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, который может быть использован для прохода по коллекции.An IEnumerator that can be used to iterate through the collection.

Реализации

Комментарии

Перечислители могут использоваться для чтения данных в коллекции, но не для ее изменения.Enumerators can be used to read the data in the collection, but they cannot be used to modify the underlying collection.

Изначально перечислитель располагается перед первым элементом коллекции.Initially, the enumerator is positioned before the first element in the collection. Метод Reset также возвращает перечислитель обратно в эту точку.The Reset method also brings the enumerator back to this position. В этой позиции свойство Current не определено.At this position, the Current property is undefined. Поэтому необходимо вызвать метод MoveNext, чтобы переместить перечислитель к первому элементу коллекции перед чтением значения Current.Therefore, you must call the MoveNext method to advance the enumerator to the first element of the collection before reading the value of Current. Дополнительные сведения о перечислителях см. в разделе IEnumerator.For more information on enumerators, see IEnumerator.

Перечислитель является допустимым до тех пор, пока коллекция остается неизменной.An enumerator remains valid as long as the collection remains unchanged. Если в коллекцию вносятся изменения, например добавляются, изменяются или удаляются элементы, перечислитель становится недействительным без возможности восстановление, а его поведение не определено.If changes are made to the collection, such as adding, modifying, or deleting elements, the enumerator is irrecoverably invalidated and its behavior is undefined.

Инструкция foreach языка C# (for each в Visual Basic) позволяет скрыть сложный механизм перечислителей.The foreach statement of the C# language (for each in Visual Basic) hides the complexity of the enumerators. Поэтому рекомендуется вместо непосредственного использования перечислителя применять ключевое слово foreach.Therefore, using foreach is recommended, instead of directly manipulating the enumerator.

У перечислителя нет эксклюзивного доступа к коллекции, поэтому перечисление коллекции не является потокобезопасной процедурой.The enumerator does not have exclusive access to the collection; therefore, enumerating through a collection is intrinsically not a thread-safe procedure. Чтобы гарантировать потокобезопасность, можно заблокировать коллекцию на время всего перечисления.To guarantee thread safety during enumeration, you can lock the collection during the entire enumeration. Чтобы разрешить доступ к коллекции из нескольких потоков для чтения и записи, необходимо реализовать собственную синхронизацию.To allow the collection to be accessed by multiple threads for reading and writing, you must implement your own synchronization.

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