MatchCollection.GetEnumerator 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
提供一个循环访问集合的枚举器。
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
返回
包含 Match 中所有 MatchCollection 对象的对象。
实现
例外
注解
应使用组迭代构造 ((如 foreach
C# 和 For Each
... 中)而不是调用GetEnumerator方法来检索循环Match访问集合中的对象。Next
在编程语言提供的Visual Basic) 中。
使用 GetEnumerator C# 方法 (或 foreach
C# 中的语句和 For Each
...语句循环访问对象的成员MatchCollection,Visual Basic) 中的 ...Next
语句会导致正则表达式引擎使用延迟计算根据需要填充集合。 这类似于重复调用 Regex.Match 该方法,然后将生成的匹配项添加到 MatchCollection 对象。 相比之下,正则表达式引擎使用直接计算在访问属性时 Count 立即填充集合。 这可以比延迟评估更昂贵的方法来生成集合。
由于对象 MatchCollection 通常使用延迟求值填充,因此尝试导航到集合的下一个 RegexMatchTimeoutException 成员可能会引发异常。 如果匹配操作的超时值生效,并且尝试查找下一个匹配项超过该超时间隔,则可能会引发此异常。