MatchCollection.Item[Int32] Özellik
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
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
Özellik Değeri
Yakalanan alt dize koleksiyondaki konumdadır i
.
Uygulamalar
Özel durumlar
i
0'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.