IDTSInputColumnCollection100.GetEnumerator 方法

定义

public:
 System::Collections::IEnumerator ^ GetEnumerator();
[System.Runtime.InteropServices.DispId(-4)]
public System.Collections.IEnumerator GetEnumerator();
[<System.Runtime.InteropServices.DispId(-4)>]
abstract member GetEnumerator : unit -> System.Collections.IEnumerator
Public Function GetEnumerator () As IEnumerator

返回

IEnumerator用于迭代集合。

实现

属性

注解

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

最初,枚举器位于集合中的第一个元素之前。 重置 还会让枚举器回到这个位置。 此时,呼叫 Current 会抛出异常。 因此,您必须调用 MoveNext ,先将枚举器推进到集合的第一个元素,然后再读取 Current的值。

Current 返回同一对象,直到调用 MoveNextResetMoveNextCurrent 设置为下一个元素。

集合结束后,枚举器位于集合的最后一个元素之后,调用 MoveNext 返回 false。 如果最后一次调用 MoveNext 返回 false,调用 Current 会抛出异常。 要将 Current 再次设置为集合的第一个元素,你可以调用 Reset ,然后调用 MoveNext

只要集合保持不变,枚举器就保持有效。 如果对集合进行了更改,比如添加、修改或删除元素,枚举器将不可恢复地失效,下一次调用 MoveNextReset 会抛出 InvalidOperationException。 如果集合在 MoveNextCurrent 之间被修改, Current 会返回它被设定的元素,即使枚举器已经失效。

枚举器不具有对集合的独占访问权限;因此,通过集合进行枚举本质上不是线程安全的过程。 即使集合同步,其他线程仍可以修改集合,这会导致枚举器引发异常。 若要保证枚举期间的线程安全性,可以在整个枚举期间锁定集合,也可以捕获由其他线程所做的更改导致的异常。

适用于