MatchCollection Class
[ This article is for Windows Phone 8 developers. If you’re developing for Windows 10, see the latest documentation. ]
Represents the set of successful matches found by iteratively applying a regular expression pattern to the input string.
Assembly: System (in System.dll)
The MatchCollection type exposes the following members.
| Name | Description | |
|---|---|---|
![]() | Count | Gets the number of matches. |
![]() | IsReadOnly | Gets a value that indicates whether the collection is read only. |
![]() | IsSynchronized | Gets a value indicating whether access to the collection is synchronized (thread-safe). |
![]() | Item | Gets an individual member of the collection. |
![]() | SyncRoot | Gets an object that can be used to synchronize access to the collection. |
| Name | Description | |
|---|---|---|
![]() | CopyTo | Copies all the elements of the collection to the given array starting at the given index. |
![]() | Equals(Object) | Determines whether the specified Object is equal to the current Object. (Inherited from Object.) |
![]() | Finalize | Allows an object to try to free resources and perform other cleanup operations before the Object is reclaimed by garbage collection. (Inherited from Object.) |
![]() | GetEnumerator | Provides an enumerator in the same order as Item. |
![]() | GetHashCode | Serves as a hash function for a particular type. (Inherited from Object.) |
![]() | GetType | Gets the Type of the current instance. (Inherited from Object.) |
![]() | MemberwiseClone | Creates a shallow copy of the current Object. (Inherited from Object.) |
![]() | ToString | Returns a string that represents the current object. (Inherited from Object.) |
| Name | Description | |
|---|---|---|
![]() | AsQueryable | Converts an IEnumerable to an IQueryable. (Defined by Queryable.) |
![]() | Cast<TResult> | Converts the elements of an IEnumerable to the specified type. (Defined by Enumerable.) |
![]() | OfType<TResult> | Filters the elements of an IEnumerable based on a specified type. (Defined by Enumerable.) |
The collection is immutable (read-only) and has no public constructor. The Regex::Matches method returns a MatchCollection object.
When applying a regular expression pattern to a particular input string, the regular expression engine uses either of two techniques to build the MatchCollection object:
Direct evaluation.
The MatchCollection object is populated all at once with all matches resulting from a particular call to the Regex::Matches method. This technique is used when the collection's Count property is accessed. It typically is the more expensive method of populating the collection and entails a greater performance hit.
Lazy evaluation.
The MatchCollection object is populated as needed on a match-by-match basis. It is equivalent to the regular expression engine calling the Regex::Match method repeatedly and adding each match to the collection. This technique is used when the collection is accessed through its GetEnumerator method, or when it is accessed using the foreach statement (in C#) or the For Each...Next statement (in Visual Basic).



