This documentation is archived and is not being maintained.

GroupCollection.CopyTo Method

Updated: June 2011

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)

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 the copying is to begin.

Implements

ICollection.CopyTo(Array, Int32)

ExceptionCondition
ArgumentNullException

array is null.

IndexOutOfRangeException

arrayIndex is outside the bounds of array.

-or-

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

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.

Caution noteCaution

This member is not present in the Portable Class Library. If you are developing applications that target the Portable Class Library, use the GroupCollection.ICollection.CopyTo method instead.

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 to the console.


using System;
using System.Text.RegularExpressions;

public class Example
{
   public static void Main()
   {
      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)
         Console.WriteLine(words[ctr]);
   }
}
// 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.

.NET Framework

Supported in: 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

Date

History

Reason

June 2011

Added note for developers who target the Portable Class Library.

Information enhancement.

Show: