信息
您所需的主题如下所示。但此主题未包含在此库中。

Stack<T>.Enumerator 结构

更新:2007 年 11 月

枚举 Stack<T> 的元素。

命名空间:  System.Collections.Generic
程序集:  System(在 System.dll 中)

[SerializableAttribute]
public struct Enumerator : IEnumerator<T>, 
	IDisposable, IEnumerator
/** @attribute SerializableAttribute */ 
public final class Enumerator extends ValueType implements IEnumerator<T>, 
	IDisposable, IEnumerator
JScript 支持使用结构,但是不支持新结构的声明。

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

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

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

Current 返回相同的对象,直到 MoveNext 被调用。MoveNextCurrent 设置为下一个元素。

如果 MoveNext 越过集合的结尾,则枚举数将定位在该集合中最后一个元素的后面,且 MoveNext 将返回 false。当枚举数位于此位置时,对 MoveNext 的后续调用也返回 false。如果对 MoveNext 的最近一次调用返回 false,则说明未定义 Current。无法再次为集合的第一个元素设置 Current;必须改为新建枚举数实例。

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

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

System.Collections.Generic 中集合的默认实现不同步。

此类型的任何公共 static(在 Visual Basic 中为 Shared) 成员都是线程安全的。但不保证所有实例成员都是线程安全的。

Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98, Windows CE, Windows Mobile for Smartphone, Windows Mobile for Pocket PC, Xbox 360

.NET Framework 和 .NET Compact Framework 并不是对每个平台的所有版本都提供支持。有关支持的版本的列表,请参见.NET Framework 系统要求

.NET Framework

受以下版本支持:3.5、3.0、2.0

.NET Compact Framework

受以下版本支持:3.5、2.0

XNA Framework

受以下版本支持:2.0、1.0

社区附加资源

显示:
© 2014 Microsoft