This documentation is archived and is not being maintained.

GroupCollection.CopyTo Method

Updated: August 2009

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


Type: System.Array

The array the collection is to be copied into.

Type: System.Int32

The position in the destination array where the copying is to begin.


ICollection.CopyTo(Array, Int32)


array is null.


arrayIndex is outside the bounds of array.


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.

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)
// The example displays the following output: 
//       This 
//       sentence 
//       is 
//       rather 
//       short 
//       but 
//       pointless

The regular expression is defined as follows:




Match a word boundary.


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


Match a word boundary.

Windows 7, Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2008 R2, Windows Server 2008, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98, Windows CE, Windows Mobile for Smartphone, Windows Mobile for Pocket PC, Xbox 360, Zune

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

.NET Framework

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

.NET Compact Framework

Supported in: 3.5, 2.0, 1.0

XNA Framework

Supported in: 3.0, 2.0, 1.0




August 2009

Added an example.

Information enhancement.

July 2009

Expanded the list of exceptions.

Content bug fix.