MatchCollection.Item[Int32] Vlastnost

Definice

Získá jednotlivého člena kolekce.

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

Parametry

i
Int32

Indexujte do Match kolekce.

Hodnota vlastnosti

Zachycený podřetěc na pozici i v kolekci.

Implementuje

Výjimky

i je menší než 0 nebo větší než nebo rovno Count.

Došlo k vypršení časového limitu.

Příklady

Následující příklad analyzuje první větu Nathaniela Hawthorneho Domu sedmi gables a vrátí MatchCollection objekt, který obsahuje všechna slova začínající velkými nebo malými písmeny "h". Vlastnost Item[] se pak použije k načtení každého slova a jeho zobrazení v konzole.

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

Příklad vytvoří následující výstup:

Half
house
huge

Poznámky

V jazyce C# Item[] je vlastnost indexer; není explicitně odkazována v kódu, ale umožňuje MatchCollection přístup ke kolekci, jako by to bylo pole.

K jednotlivým položkám v objektu MatchCollection se obvykle přistupuje pomocí jejich indexu až po určení celkového počtu položek v kolekci Count z vlastnosti . Přístup k Count vlastnosti však způsobí, že modul regulárních výrazů použije přímé vyhodnocení k sestavení kolekce najednou. To je obvykle dražší než iterace kolekce pomocí GetEnumerator metody, příkazu jazyka C# foreach nebo příkazu jazyka Visual Basic For Each...Next .

Vzhledem k tomu, že MatchCollection objekt je obecně naplněn opožděným vyhodnocením, při pokusu o přechod na konkrétní shodu může dojít k výjimce RegexMatchTimeoutException . Tato výjimka může být vyvolán, pokud platí hodnota časového limitu pro odpovídající operace a pokus o nalezení konkrétní shody překročí tento interval časového limitu.

Platí pro

Viz také