System.Collections.Specialized.StringCollection.GetEnumerator 方法

方法描述

返回循环访问 StringCollection 的 StringEnumerator。

语法定义(C# System.Collections.Specialized.StringCollection.GetEnumerator 方法 的用法)

public StringEnumerator GetEnumerator()

参数/返回值

参数值/返回值 参数类型/返回类型 参数描述/返回描述
返回值 System.Collections.Specialized.StringEnumerator 用于 StringCollection 的 StringEnumerator。

提示和注释

[Visual Basic, C#]

C# 语言的 foreach 语句(在 Visual Basic 中为 for each)隐藏了枚举数的复杂性。 因此,建议使用 foreach,而不直接操作枚举数。

枚举数可用于读取集合中的数据,但不能用于修改基础集合。

最初,枚举数定位在集合中第一个元素前。 Reset 还将枚举器返回到此位置。 在此位置上,Current 未定义。 因此,在读取 Current 的值之前,必须调用 MoveNext 将枚举数提前到集合的第一个元素。

在调用 MoveNext 或 Reset 之前,Current 返回同一对象。 MoveNext 将 Current 设置为下一个元素。

如果 MoveNext 越过集合的结尾,则枚举数将被定位在此集合中最后一个元素的后面,且 MoveNext 返回 false。 当枚举数位于此位置时,对 MoveNext 的后续调用也返回 false。 如果对 MoveNext 的上一次调用返回 false,则说明未定义 Current。 若要再次将 Current 设置为集合的第一个元素,可以调用 Reset,然后再调用 MoveNext。

只要集合保持不变,枚举数就保持有效。 如果对集合进行更改(如添加、修改或删除元素),则枚举数将失效且不可恢复,而且其行为是不确定的。

该枚举数不具有独占访问集合的权限;因此,枚举整个集合本质上不是一个线程安全的过程。 若要确保枚举过程中的线程安全性,可以在整个枚举过程中锁定集合。 若要允许多个线程访问集合以进行读写操作,则必须实现自己的同步。

此方法的运算复杂度是 O(1)。

System.Collections.Specialized.StringCollection.GetEnumerator 方法例子


异常

异常 异常描述

命名空间

namespace: System.Collections.Specialized

程序集: System(在 System.dll 中)

版本信息

.NET Framework 受以下版本支持:4、3.5、3.0、2.0、1.1、1.0 .NET Framework Client Profile 受以下版本支持:4、3.5 SP1

适用平台

Windows 7, Windows Vista SP1 或更高版本, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008(不支持服务器核心), Windows Server 2008 R2(支持 SP1 或更高版本的服务器核心), Windows Server 2003 SP2 .NET Framework 并不是对每个平台的所有版本都提供支持。有关支持的版本的列表,请参见.NET Framework 系统要求。