İngilizce dilinde oku

Aracılığıyla paylaş


CharEnumerator Sınıf

Tanım

Bir String nesne üzerinde yinelemeyi ve tek tek karakterlerini okumayı destekler. Bu sınıf devralınamaz.

C#
public sealed class CharEnumerator : ICloneable, System.Collections.Generic.IEnumerator<char>
C#
[System.Serializable]
public sealed class CharEnumerator : ICloneable, System.Collections.IEnumerator
C#
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public sealed class CharEnumerator : ICloneable, System.Collections.Generic.IEnumerator<char>
Devralma
CharEnumerator
Öznitelikler
Uygulamalar

Örnekler

Aşağıdaki örnek, bir dizedeki CharEnumerator tek tek karakterleri listelemek için sınıfını kullanır. yöntemini çağırarak bir nesne örneği oluşturur, yöntemini çağırarak MoveNextString.GetEnumerator bir CharEnumerator karakterden diğerine geçer ve özelliğin Current değerini alarak geçerli karakteri görüntüler.

C#
string title = "A Tale of Two Cities";
CharEnumerator chEnum = title.GetEnumerator();
int ctr = 1;
string outputLine1 = null;
string outputLine2 = null;
string outputLine3 = null;

while (chEnum.MoveNext())
{
   outputLine1 += ctr < 10 || ctr % 10 != 0 ? "  " : (ctr / 10) + " ";
   outputLine2 += (ctr % 10) + " ";
   outputLine3 += chEnum.Current + " ";
   ctr++;
}

Console.WriteLine("The length of the string is {0} characters:",
                  title.Length);
Console.WriteLine(outputLine1);
Console.WriteLine(outputLine2);
Console.WriteLine(outputLine3);
// The example displays the following output to the console:
//       The length of the string is 20 characters:
//                         1                   2
//       1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0
//       A   T a l e   o f   T w o   C i t i e s

Ancak, aşağıdaki örnekte gösterildiği gibi aynı işlemin (C#'ta) veya For Each (Visual Basic'te) kullanılarak foreach biraz daha sezgisel bir şekilde gerçekleştirilebileceğini unutmayın.

C#
string title = "A Tale of Two Cities";
int ctr = 1;
string outputLine1 = null;
string outputLine2 = null;
string outputLine3 = null;

foreach (char ch in title)
{
   outputLine1 += ctr < 10 || ctr % 10 != 0 ? "  " : (ctr / 10) + " ";
   outputLine2 += (ctr % 10) + " ";
   outputLine3 += ch + " ";
   ctr++;
}

Console.WriteLine("The length of the string is {0} characters:",
                  title.Length);
Console.WriteLine(outputLine1);
Console.WriteLine(outputLine2);
Console.WriteLine(outputLine3);
// The example displays the following output to the console:
//       The length of the string is 20 characters:
//                         1                   2
//       1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0
//       A   T a l e   o f   T w o   C i t i e s

Açıklamalar

, CharEnumerator başvuruda bulunılan String nesnedeki karakterlere salt okunur erişim sağlar. Örneğin, foreach bir koleksiyonun öğelerinde yinelenen Microsoft Visual Basic ve C# programlama dillerinin deyimi, nesnedeki karakterleri yinelemek için nesneden bir CharEnumeratorString alır.

Önemli

sınıfı tek CharEnumerator tek 16 bit Char örnekleri numaralandırır. Grafemeleri (bir veya daha fazla tarama karakteri tarafından takip edilen bir karakter) veya vekil çiftleri (Unicode Temel Çok Dilli Düzlem dışındaki karakterler) tek karakter olarak dikkate almaz. Bu tür karakterleri tek bir birim olarak işleyen bir numaralandırıcı için sınıfını StringInfo kullanın.

için CharEnumeratorgenel oluşturucu yok. Bunun yerine, dizeye başvurmak üzere başlatılan bir CharEnumerator almak için nesnesinin GetEnumerator yöntemini çağırınString.

A CharEnumerator , başvuruda bulunan dizedeki karakterlerin iç dizinini CharEnumerator tutar. Dizinin durumu, dizedeki ilk karakterden önce veya son karakterden sonra mantıksal olarak bir karakter konumuna başvurduğunda geçersizdir ve dize içindeki bir karaktere başvurduğunda geçerlidir. Dizin ilk karakterden önce mantıksal olarak bir konuma başlatılır ve yineleme tamamlandığında son karakterden sonra bir konuma ayarlanır. Dizin geçersizken bir karaktere erişmeye çalıştığınızda bir özel durum oluşur.

MoveNext yöntemi dizini bir artırır, böylece ilk ve sonraki karakterlere sırayla erişilir. yöntemi, Reset dizini ilk karakterden önce mantıksal olarak bir konuma ayarlar. özelliği, Current dizin tarafından şu anda başvuruda bulunan karakteri alır. yöntemi, Clone öğesinin CharEnumeratorbir kopyasını oluşturur.

Not

Bir veya daha fazla iş parçacığının birkaç bağımsız örneği CharEnumerator , tek bir örneğine Stringerişebilir. Bu sınıf arabirimini desteklemek IEnumerator için uygulanır. Numaralandırıcı kullanımı hakkında daha fazla bilgi için konuya bakın IEnumerator .

Özellikler

Current

Bu CharEnumerator nesne tarafından numaralandırılan dizede şu anda başvurulan karakteri alır.

Yöntemler

Clone()

Geçerli CharEnumerator nesnenin bir kopyasını oluşturur.

Dispose()

CharEnumerator sınıfının geçerli örneği tarafından kullanılan tüm kaynakları serbest bırakır.

Equals(Object)

Belirtilen nesnenin geçerli nesneye eşit olup olmadığını belirler.

(Devralındığı yer: Object)
GetHashCode()

Varsayılan karma işlevi işlevi görür.

(Devralındığı yer: Object)
GetType()

Type Geçerli örneğini alır.

(Devralındığı yer: Object)
MemberwiseClone()

Geçerli Objectöğesinin sığ bir kopyasını oluşturur.

(Devralındığı yer: Object)
MoveNext()

Geçerli CharEnumerator nesnenin iç dizinini numaralandırılmış dizenin sonraki karakterine artırır.

Reset()

Dizini numaralandırılmış dizenin ilk karakterinden önce mantıksal olarak bir konuma başlatır.

ToString()

Geçerli nesneyi temsil eden dizeyi döndürür.

(Devralındığı yer: Object)

Belirtik Arabirim Kullanımları

IDisposable.Dispose()

sınıfı tarafından CharEnumerator kullanılan tüm kaynakları serbest bırakır.

IEnumerator.Current

Bu CharEnumerator nesne tarafından numaralandırılan dizede şu anda başvurulan karakteri alır. Bu üyenin açıklaması için bkz Current. .

Şunlara uygulanır

Ürün Sürümler
.NET Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8
.NET Standard 2.0, 2.1

Ayrıca bkz.