MatchCollection.GetEnumerator 方法

定义

提供一个循环访问集合的枚举器。

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

返回

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 成员可能会引发异常。 如果匹配操作的超时值生效,并且尝试查找下一个匹配项超过该超时间隔,则可能会引发此异常。

适用于