GroupCollection.CopyTo Method

Microsoft Silverlight will reach end of support after October 2021. Learn more.

Copies all the elements of the collection to the given array beginning at the given index.

Namespace:  System.Text.RegularExpressions
Assembly:  System (in System.dll)

Syntax

'Declaration
Public Sub CopyTo ( _
    array As Array, _
    arrayIndex As Integer _
)
public void CopyTo(
    Array array,
    int arrayIndex
)

Parameters

  • array
    Type: System.Array
    The array the collection is to be copied into.
  • arrayIndex
    Type: System.Int32
    The position in the destination array where copying is to begin.

Implements

ICollection.CopyTo(Array, Int32)

Exceptions

Exception Condition
ArgumentNullException

array is nulla null reference (Nothing in Visual Basic).

IndexOutOfRangeException

arrayIndex is outside the bounds of array.

-or-

arrayIndex plus GroupCollection.Count is outside the bounds of array.

Remarks

Because the entire collection is copied into the array starting at the given index, the destination array must be at least as large as the collection.

Examples

The following example extracts each word from a sentence and captures it in a capturing group, The CopyTo method is then used to copy the elements in each match's GroupCollection object to an array that contains the capturing groups from all matches. The individual captured words are then displayed.

Imports System.Text.RegularExpressions

Module Example
   Public Sub Demo(ByVal outputBlock As System.Windows.Controls.TextBlock)
      Dim pattern As String = "\b(\S+?)\b"
      Dim input As String = "This sentence is rather short but pointless."

      Dim matches As MatchCollection = Regex.Matches(input, pattern)
      Dim words(matches.Count * 2 - 1) As Object

      Dim index As Integer = 0
      For Each match As Match In matches
         match.Groups.CopyTo(words, index)
         index += 2
      Next
      ' Display captured groups.
      For ctr As Integer = 1 To words.GetUpperBound(0) Step 2
         outputBlock.Text += CType(words(ctr), Group).Value + vbCrLf
      Next
   End Sub
End Module
' The example displays the following output:
'       This
'       sentence
'       is
'       rather
'       short
'       but
'       pointless
using System;
using System.Text.RegularExpressions;

public class Example
{
   public static void Demo(System.Windows.Controls.TextBlock outputBlock)
   {
      string pattern = @"\b(\S+?)\b";
      string input = "This sentence is rather short but pointless.";

      MatchCollection matches = Regex.Matches(input, pattern);
      object[] words = new object[matches.Count * 2];

      int index = 0;
      foreach (Match match in matches)
      {
         match.Groups.CopyTo(words, index);
         index += 2;
      }

      // Display captured groups.
      for (int ctr = 1; ctr <= words.GetUpperBound(0); ctr += 2)
         outputBlock.Text += words[ctr] + "\n";
   }
}
// The example displays the following output:
//       This
//       sentence
//       is
//       rather
//       short
//       but
//       pointless

The regular expression is defined as follows:

Pattern

Description

\b

Match a word boundary.

(\S+?)

Match one or more non-white space characters. Assign them to the first capturing group.

\b

Match a word boundary.

Version Information

Silverlight

Supported in: 5, 4, 3

Silverlight for Windows Phone

Supported in: Windows Phone OS 7.1, Windows Phone OS 7.0

XNA Framework

Supported in: Xbox 360, Windows Phone OS 7.0

Platforms

For a list of the operating systems and browsers that are supported by Silverlight, see Supported Operating Systems and Browsers.