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

可用于循环访问集合的 IEnumeratorAn 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 方法,以将枚举器前进到集合的第一个元素 CurrentTherefore, you must call the MoveNext method to advance the enumerator to the first element of the collection before reading the value of Current. 有关枚举器的详细信息,请参阅 IEnumeratorFor 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.

C# 语言的 foreach 语句(在 Visual Basic 中为 for each)隐藏了枚举数的复杂性。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.

适用于