MatchCollection.Item[Int32] Vlastnost
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
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
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.