StringKeyFrameCollection.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

实现

注解

枚举器仅允许读取集合中的数据。 枚举器不能用于修改基础集合。

最初,枚举器位于集合中的第一项之前。 Reset 也会将枚举器放回此位置。 在此位置,调用 Current 将引发异常。 因此,在读取 的值Current之前,必须调用 MoveNext 将枚举器推进到集合的第一项。

在调用 CurrentMoveNext 之前,Reset 返回同一对象。 MoveNext 设置为 Current 下一项。

传递集合的末尾后,枚举器将定位在集合中的最后一项之后,调用 MoveNextfalse返回 。 如果最后一次调用 MoveNext 返回 , false则调用 Current 将引发异常。 若要再次设置为 Current 集合的第一项,可以调用 ResetMoveNext跟 。

只要集合保持不变,枚举器就仍有效。 如果对集合进行了更改(例如添加、修改或删除项),枚举器将不可恢复地失效,下一次InvalidOperationException调用 MoveNextReset 引发 。 如果在 和 CurrentCurrent 之间MoveNext修改集合,则将返回它设置为的项,即使枚举器已失效。

枚举数没有对集合的独占访问权;因此,从头到尾对一个集合进行枚举在本质上不是一个线程安全的过程。 即使集合已同步,其他线程仍可修改集合,从而导致枚举器引发异常。 若要确保枚举过程中的线程安全性,可以在整个枚举期间锁定集合,或者捕获由其他线程进行的更改所导致的异常。

适用于