Aracılığıyla paylaş


TextElementEnumerator Sınıf

Tanım

Bir dizenin metin öğelerini numaralandırır.

public ref class TextElementEnumerator : System::Collections::IEnumerator
public class TextElementEnumerator : System.Collections.IEnumerator
[System.Serializable]
public class TextElementEnumerator : System.Collections.IEnumerator
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public class TextElementEnumerator : System.Collections.IEnumerator
type TextElementEnumerator = class
    interface IEnumerator
[<System.Serializable>]
type TextElementEnumerator = class
    interface IEnumerator
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type TextElementEnumerator = class
    interface IEnumerator
Public Class TextElementEnumerator
Implements IEnumerator
Devralma
TextElementEnumerator
Öznitelikler
Uygulamalar

Örnekler

Aşağıdaki örnek, bir dizenin TextElementEnumerator metin öğelerini numaralandırmak için sınıfını kullanır.

using System;
using System.Globalization;

public class SamplesTextElementEnumerator  {

   public static void Main()  {

      // Creates and initializes a String containing the following:
      //   - a surrogate pair (high surrogate U+D800 and low surrogate U+DC00)
      //   - a combining character sequence (the Latin small letter "a" followed by the combining grave accent)
      //   - a base character (the ligature "")
      String myString = "\uD800\uDC00\u0061\u0300\u00C6";

      // Creates and initializes a TextElementEnumerator for myString.
      TextElementEnumerator myTEE = StringInfo.GetTextElementEnumerator( myString );

      // Displays the values returned by ElementIndex, Current and GetTextElement.
      // Current and GetTextElement return a string containing the entire text element.
      Console.WriteLine( "Index\tCurrent\tGetTextElement" );
      myTEE.Reset();
      while (myTEE.MoveNext())  {
         Console.WriteLine( "[{0}]:\t{1}\t{2}", myTEE.ElementIndex, myTEE.Current, myTEE.GetTextElement() );
      }
   }
}

/*
This code produces the following output.  The question marks take the place of high and low surrogates.

Index   Current GetTextElement
[0]:    𐀀       𐀀
[2]:    à       à
[4]:    Æ       Æ

*/
Imports System.Globalization

Public Class SamplesTextElementEnumerator

   Public Shared Sub Main()

      ' Creates and initializes a String containing the following:
      '   - a surrogate pair (high surrogate U+D800 and low surrogate U+DC00)
      '   - a combining character sequence (the Latin small letter "a" followed by the combining grave accent)
      '   - a base character (the ligature "")
      Dim myString As String = ChrW(&HD800) & ChrW(&HDC00) & ChrW(&H0061) & ChrW(&H0300) & ChrW(&H00C6)

      ' Creates and initializes a TextElementEnumerator for myString.
      Dim myTEE As TextElementEnumerator = StringInfo.GetTextElementEnumerator( myString )

      ' Displays the values returned by ElementIndex, Current and GetTextElement.
      ' Current and GetTextElement return a string containing the entire text element.
      Console.WriteLine("Index" + ControlChars.Tab + "Current" + ControlChars.Tab + "GetTextElement")
      myTEE.Reset()
      While myTEE.MoveNext()
         Console.WriteLine("[{0}]:" + ControlChars.Tab + "{1}" + ControlChars.Tab + "{2}", myTEE.ElementIndex, myTEE.Current, myTEE.GetTextElement())
      End While

   End Sub

End Class

'This code produces the following output.  The question marks take the place of high and low surrogates.
'
'Index   Current GetTextElement
'[0]:    𐀀       𐀀
'[2]:    à       à
'[4]:    Æ       Æ

Açıklamalar

.NET Framework, bir metin öğesini tek bir karakter, yani grafeme olarak görüntülenen bir metin birimi olarak tanımlar. Metin öğesi aşağıdakilerden biri olabilir:

  • Tek Char bir değer olarak temsil edilen temel karakter. Örneğin, LATIN BÜYÜK A HARFI (U+0041) ve LATIN KÜÇÜK HARF AE (U+00E6) temel karakterlerdir.

  • Bir temel karakter ve bir veya daha fazla birleştirme karakterinden oluşan bir birleştirme karakter dizisi. Örneğin, LATIN BÜYÜK HARF A (U+0041) ve ardından BIRLEŞTİr MAKRON (U+0304) birleşen karakter dizisidir.

  • Unicode Standardı'nın iki kod biriminden oluşan bir diziden oluşan tek bir soyut karakter için kodlanmış karakter gösterimi olarak tanımladığı vekil çiftleri: yüksek vekil ve düşük vekil. Vekil çiftleri, Unicode Temel Çok Dilli Düzlem dışındaki karakterleri UTF-16 ile kodlanmış karakterler olarak göstermek için kullanılır. Örneğin GOTHIC LETTER SAUIL (U+10343), UTF-16 kodlamasında değeri 0xD800 olan yüksek vekil ve değeri 0xDF43 olan düşük vekil olarak temsil edilir. Vekil çift, bir temel karakteri veya birleşen karakteri temsil edebilir.

sınıfı, TextElementEnumerator tek Char nesneler yerine dizedeki metin öğeleriyle çalışmanızı sağlar.

TextElementEnumerator Dizeyi yöntemine geçirerek belirli bir dizeyi temsil eden bir nesne örneği StringInfo.GetTextElementEnumerator oluşturursunuz. Bu, dizedeki ilk metin öğesinden önce konumlandırılmış bir numaralandırıcı döndürür. yöntemini çağırmak Reset , numaralandırıcıyı bu konuma geri getirir. Bu geçersiz bir durumu temsil ettiğinden, geçerli metin öğesini döndürmek için özelliğinin değerini okumadan önce numaralandırıcıyı dizenin ilk metin öğesine ilerletmek Current için çağırmalısınızMoveNext.

Bir TextElementEnumerator nesneyle çalışırken, numaralandırıcıyı konumlandırmaktan siz sorumlusunuz. özelliği, Current veya Resetçağırana MoveNext kadar aynı metin öğesini döndürür. Numaralandırıcı, ilk metin öğesinden önce veya dizedeki son metin öğesinden sonra konumlandırıldıysa geçersiz durumdadır. Numaralandırıcı geçersiz bir durumda olduğunda, özelliğin Current değerini almaya çalışmak bir özel durum oluşturur. Özelliğin falsedönüş değerinin MoveNext() olup olmadığını test ederek numaralandırıcının geçersiz durumda olup olmadığını belirleyebilirsiniz.

nesnesi, TextElementEnumerator bir dize değişkeninin geçerli durumunun anlık görüntüsünü veya nesnenin örneği oluşturulurken TextElementEnumerator dize sabitini temsil eder. Şunlara dikkat edin:

  • Metin öğesi numaralandırıcıları yalnızca bir dizedeki verileri okumak için kullanılabilir. Temel dizeyi değiştiremezler.

  • Bir numaralandırıcının temsil ettiği dizeye özel erişimi yoktur. Bir dize değişkeni, numaralandırıcı oluşturulduktan sonra değiştirilebilir.

  • Nesne TextElementEnumerator , nesnenin örneği oluşturulduğu sırada TextElementEnumerator dizede bulunan metin öğelerini numaralandırır. Bu değişken daha sonra değiştirilirse, dize değişkeninde yapılan sonraki değişiklikleri yansıtmaz.

  • TextElementEnumerator sınıfı geçersiz kılmadığındanObject.Equals, aynı dizeyi temsil eden iki TextElementEnumerator nesne eşit değil olarak kabul edilir.

Özellikler

Name Description
Current

Dizedeki geçerli metin öğesini alır.

ElementIndex

Numaralandırıcının şu anda üzerinde konumlandırılmış olduğu metin öğesinin dizinini alır.

Yöntemler

Name Description
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)
GetTextElement()

Dizedeki geçerli metin öğesini alır.

GetType()

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

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

Geçerli Objectbasit bir kopyasını oluşturur.

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

Numaralandırıcıyı dizenin sonraki metin öğesine ilerler.

Reset()

Numaralandırıcıyı, dizedeki ilk metin öğesinden önceki ilk konumuna ayarlar.

ToString()

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

(Devralındığı yer: Object)

Şunlara uygulanır

Ayrıca bkz.