MatchCollection.Item[Int32] Özellik

Tanım

Koleksiyonun tek bir üyesini alır.

public:
 virtual property System::Text::RegularExpressions::Match ^ default[int] { System::Text::RegularExpressions::Match ^ get(int i); };
public virtual System.Text.RegularExpressions.Match this[int i] { get; }
member this.Item(int) : System.Text.RegularExpressions.Match
Default Public Overridable ReadOnly Property Item(i As Integer) As Match

Parametreler

i
Int32

Koleksiyonun dizinini Match oluşturun.

Özellik Değeri

Yakalanan alt dize koleksiyondaki konumdadır i .

Uygulamalar

Özel durumlar

i0'dan küçük veya değerinden büyük ya da değerine eşit.Count

Zaman aşımı oluştu.

Örnekler

Aşağıdaki örnek, Nathaniel Hawthorne's House of the Seven Gables'ın ilk cümlesini ayrıştırarak büyük veya küçük harfli "h" ile başlayan tüm sözcükleri içeren bir MatchCollection nesne döndürür. Özelliği Item[] daha sonra her sözcüğü almak ve konsolda görüntülemek için kullanılır.

using System;
using System.Text.RegularExpressions;

public class Class1
{
   public static void Main()
   {   
      string sentence = "Half-way down a by-street of one of our New England towns, stands a rusty wooden " +
                         "house, with seven acutely peaked gables, facing towards various points of the compass, " + 
                         "and a huge, clustered chimney in the midst.";
      string pattern = @"\b[hH]\w*\b"; 
      MatchCollection matches = Regex.Matches(sentence, pattern);
      for (int ctr=0; ctr < matches.Count; ctr++)
      {
         Console.WriteLine(matches[ctr].Value);   
      }   
   }
}
Option Strict On

Imports System.Text.RegularExpressions

Module TestMatches
   Public Sub Main()
      Dim pattern As String = "\b[hH]\w*\b"
      Dim sentence As String
      sentence = "Half-way down a by-street of one of our New England towns, stands a rusty wooden " & _
                 "house, with seven acutely peaked gables, facing towards various points of the compass, " & _ 
                 "and a huge, clustered chimney in the midst."
      Dim matches As MatchCollection = Regex.Matches(sentence, pattern)
      For ctr As Integer = 0 To Matches.Count - 1
         Console.WriteLine(matches.Item(ctr).Value)
      Next           
   End Sub
End Module

Örnek aşağıdaki çıkışı oluşturur:

Half
house
huge

Açıklamalar

C# Item[] dilinde özelliği bir dizin oluşturucudur; kodda açıkça başvurulmuyor, bunun yerine koleksiyona bir diziymiş gibi erişilmesine izin veriyor MatchCollection .

Genellikle, nesnedeki MatchCollection tek tek öğelere dizinleri tarafından yalnızca koleksiyondaki toplam öğe sayısı özelliğinden Count belirlendikten sonra erişilir. Ancak özelliğine Count erişmek normal ifade altyapısının koleksiyonu bir kerede derlemek için doğrudan değerlendirme kullanmasına neden olur. Bu genellikle yöntemini, C# foreach deyimini veya Visual Basic For Each...Next deyimini kullanarak GetEnumerator koleksiyonu yinelemekten daha pahalıdır.

MatchCollection Nesne genellikle gecikmeli değerlendirme kullanılarak dolduruldığından, belirli bir eşleşmeye gitmeye çalışmak bir RegexMatchTimeoutException özel durum oluşturabilir. Eşleştirme işlemleri için bir zaman aşımı değeri etkinse ve belirli bir eşleşmeyi bulma girişimi bu zaman aşımı aralığını aşarsa bu özel durum oluşturulabilir.

Şunlara uygulanır

Ayrıca bkz.