GroupCollection.CopyTo 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
重载
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
。
示例
下面的示例从句子中提取每个单词并将其捕获到捕获组中,然后,该方法 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。
array
- arrayIndex
的长度小于组集合计数。