MatchCollection.Item[Int32] Proprietà
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Ottiene un singolo membro della raccolta.
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
Parametri
Valore della proprietà
Sottostringa acquisita alla posizione i
della raccolta.
Implementazioni
Eccezioni
i
è minore di 0 oppure maggiore o uguale a Count.
Si è verificato un timeout.
Esempio
L'esempio seguente analizza la prima frase di Nathaniel Hawthorne's House of the Seven Gables e restituisce un MatchCollection oggetto che contiene tutte le parole che iniziano con un maiuscolo o minuscolo "h". La Item[] proprietà viene quindi usata per recuperare ogni parola e visualizzarla nella console.
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
Questo esempio produce il seguente output:
Half
house
huge
Commenti
In C#, la Item[] proprietà è un indicizzatore; non viene fatto riferimento in modo esplicito nel codice, ma consente l'accesso alla MatchCollection raccolta come se fosse una matrice.
In genere, i singoli elementi dell'oggetto vengono accessibili dall'indice MatchCollection solo dopo che il numero totale di elementi dell'insieme Count è stato determinato dalla proprietà. Tuttavia, l'accesso alla Count proprietà fa sì che il motore delle espressioni regolari usi la valutazione diretta per compilare la raccolta tutte contemporaneamente. Questo è in genere più costoso rispetto all'iterazione della raccolta usando il GetEnumerator metodo, l'istruzione C# foreach
o l'istruzione Visual Basic For Each
...Next
.
Poiché l'oggetto MatchCollection viene generalmente popolato usando la valutazione lazy, il tentativo di passare a una corrispondenza specifica può generare un'eccezione RegexMatchTimeoutException . Questa eccezione può essere generata se un valore di timeout per le operazioni di corrispondenza è effettivo e il tentativo di trovare una corrispondenza specifica supera l'intervallo di timeout.