GroupCollection.CopyTo Метод

Определение

Перегрузки

CopyTo(Array, Int32)

Копирует все элементы коллекции в данный массив, начиная с данного индекса.

CopyTo(Group[], Int32)

Копирует элементы коллекции групп в массив Group, начиная с определенного индекса в массиве.

CopyTo(Array, Int32)

Копирует все элементы коллекции в данный массив, начиная с данного индекса.

public:
 virtual void CopyTo(Array ^ array, int arrayIndex);
public void CopyTo (Array array, int arrayIndex);
abstract member CopyTo : Array * int -> unit
override this.CopyTo : Array * int -> unit
Public Sub CopyTo (array As Array, arrayIndex As Integer)

Параметры

array
Array

Массив, в который необходимо скопировать коллекцию.

arrayIndex
Int32

Позиция в конечном массиве, в которой необходимо начать копирование.

Реализации

Исключения

array имеет значение null.

Значение параметра arrayIndex выходит за пределы массива array.

-или-

Сумма значений arrayIndex и Count выходит за пределы массива array.

Примеры

В следующем примере извлекается каждое слово из предложения и записывается в захватываемую группу. CopyTo Затем метод используется для копирования элементов в объекте каждого совпадения GroupCollection в массив, содержащий захватываемые группы из всех совпадений. Затем отдельные захваченные слова отображаются в консоли.

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
Imports System.Text.RegularExpressions

Module Example
   Public Sub Main()
      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
         Console.WriteLine(words(ctr))
      Next
   End Sub
End Module
' The example displays the following output:
'       This
'       sentence
'       is
'       rather
'       short
'       but
'       pointless

Регулярное выражение определяется следующим образом:

Шаблон Описание
\b Соответствует границе слова.
(\S+?) Соответствует одному или нескольким символам, не являющихся пробелами. Назначьте их первой захватываемой группе.
\b Соответствует границе слова.

Комментарии

Так как вся коллекция копируется в массив, начиная с заданного индекса, целевой массив должен быть не менее большим, чем коллекция.

Предупреждение

Этот член отсутствует в переносимой библиотеке классов. Если вы разрабатываете приложения, предназначенные для переносимой библиотеки классов, используйте GroupCollection.ICollection.CopyTo вместо этого метод.

Применяется к

CopyTo(Group[], Int32)

Копирует элементы коллекции групп в массив Group, начиная с определенного индекса в массиве.

public:
 virtual void CopyTo(cli::array <System::Text::RegularExpressions::Group ^> ^ array, int arrayIndex);
public void CopyTo (System.Text.RegularExpressions.Group[] array, int arrayIndex);
abstract member CopyTo : System.Text.RegularExpressions.Group[] * int -> unit
override this.CopyTo : System.Text.RegularExpressions.Group[] * int -> unit
Public Sub CopyTo (array As Group(), arrayIndex As Integer)

Параметры

array
Group[]

Одномерный массив, куда копируются элементы из данной коллекции групп. Индекс в массиве должен начинаться с нуля.

arrayIndex
Int32

Отсчитываемый от нуля индекс в массиве array, указывающий начало копирования.

Реализации

Исключения

Параметр array имеет значение null.

Значение параметра arrayIndex меньше нуля.

-или-

Значение arrayIndex превышает длину array.

Длина array - arrayIndex меньше количества коллекции групп.

Применяется к