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 listelemek için sınıfını kullanır.

using namespace System;
using namespace System::Globalization;
int 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 S"a" followed by the combining grave accent)
   //   - a base character (the ligature S"")
   String^ myString = L"\xD800\xDC00"
   L"a\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]:    Æ       Æ

*/
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 HARF A (U+0041) ve LATIN KÜÇÜK HARF AE (U+00E6) temel karakterlerdir.

  • Bir temel karakterden ve bir veya daha fazla birleştirme karakterinden oluşan bir birleştirme karakteri dizisi. Örneğin, LATIN BÜYÜK HARF A (U+0041) ve ardından BİRLEŞTİrEN 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 çiftler: yüksek vekil ve düşük vekil. Vekil çiftler, 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 ve değeri 0xDF43 düşük bir 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.

Dizeyi yöntemine geçirerek belirli bir dizeyi temsil eden bir nesnenin örneğini TextElementEnumeratorStringInfo.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 da 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ğrısında MoveNext bulunmalısınız.

Bir TextElementEnumerator nesneyle çalışırken, numaralandırıcıyı konumlandırmaktan siz sorumlusunuz. özelliğiCurrent, 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 olup olmadığını test ederek numaralandırıcının MoveNext geçersiz durumda olup olmadığını belirleyebilirsiniz.

nesnesi, TextElementEnumerator bir dize değişkeninin veya nesnenin örneği oluşturulurken dize sabitinin geçerli durumunun TextElementEnumerator anlık görüntüsünü 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

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

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()

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()

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 dizeyi döndürür.

(Devralındığı yer: Object)

Şunlara uygulanır

Ayrıca bkz.