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

IEnumerable.GetEnumerator 方法

2013/12/13

返回一个循环访问集合的枚举器。

Namespace:  System.Collections
程序集:  mscorlib(位于 mscorlib.dll 中)

IEnumerator GetEnumerator()

返回值

类型: System.Collections.IEnumerator
可用于循环访问集合的 IEnumerator 对象。

[Visual Basic, C#]

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

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

最初,枚举器被定位于集合中第一个元素的前面。Reset 方法还会将枚举器返回到此位置。在此位置上,Current 属性未定义。因此,在读取 Current 的值之前,必须调用 MoveNext 方法将枚举器向前定位到集合的第一个元素。

在调用 MoveNextReset 之前,Current 返回同一个对象。MoveNextCurrent 设置为下一个元素。

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

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

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

Windows Phone OS

受以下版本支持: 8.0, 7.1, 7.0

Windows Phone

显示:
© 2016 Microsoft