TextElementEnumerator Klasse

Definition

Listet die Textelemente einer Zeichenfolge auf.

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
Vererbung
TextElementEnumerator
Attribute
Implementiert

Beispiele

Im folgenden Beispiel wird die TextElementEnumerator Klasse verwendet, um die Textelemente einer Zeichenfolge aufzählen zu können.

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]:    Æ       Æ

Hinweise

Das .NET Framework definiert ein Textelement als Eine Einheit von Text, die als einzelnes Zeichen angezeigt wird, also ein Grapheme. Ein Textelement kann eine der folgenden Elemente sein:

  • Ein Basiszeichen, das als einzelner Char Wert dargestellt wird. Beispielsweise sind LATEINISCHE GROßBUCHSTABEN A (U+0041) und LATEINISCHE KLEINBUCHSTABEN AE (U+00E6) Basiszeichen.

  • Eine Kombinationszeichensequenz, die aus einem Basiszeichen und einem oder mehreren Kombinationszeichen besteht. Beispielsweise ist LATEINISCHER GROßBUCHSTABEN A (U+0041) gefolgt von KOMBINATIONS-MACRON (U+0304) eine Kombinationszeichensequenz.

  • Surrogate-Paare, die der Unicode-Standard als codierte Zeichendarstellung für ein einzelnes abstraktes Zeichen definiert, das aus einer Sequenz von zwei Codeeinheiten besteht: einer hohen Surrogate und einer niedrigen Surrogate. Surrogate-Paare werden verwendet, um Zeichen außerhalb der Unicode Basic Multilingual Plane als UTF-16 codierte Zeichen darzustellen. So wird z. B. GOTHIC LETTER SAUIL (U+10343) in UTF-16-Codierung als hoch surrogate dargestellt, dessen Wert 0xD800 ist und ein niedriger Surrogate, dessen Wert 0xDF43 ist. Ein Surrogate-Paar kann ein Basiszeichen oder ein Kombinationszeichen darstellen.

Mit der TextElementEnumerator Klasse können Sie mit den Textelementen in einer Zeichenfolge und nicht mit einzelnen Char Objekten arbeiten.

Sie instanziieren ein Objekt, das eine TextElementEnumerator bestimmte Zeichenfolge darstellt, indem Sie die Zeichenfolge an die StringInfo.GetTextElementEnumerator Methode übergeben. Dadurch wird ein Aufzählerator zurückgegeben, der vor dem ersten Textelement in der Zeichenfolge positioniert ist. Durch Aufrufen der Reset Methode wird auch der Aufzählungsator wieder in diese Position versetzt. Da dies einen ungültigen Zustand darstellt, müssen MoveNext Sie aufrufen, um den Aufzählungssatz an das erste Textelement der Zeichenfolge zu übergeben, bevor der Wert der Current Eigenschaft gelesen wird, um das aktuelle Textelement zurückzugeben.

Beim Arbeiten mit einem TextElementEnumerator Objekt sind Sie für die Positionierung des Aufzählungszeichens verantwortlich. Die Current Eigenschaft gibt das gleiche Textelement zurück, bis Sie entweder MoveNext oder Reset. Der Aufzählungsator befindet sich in einem ungültigen Zustand, wenn er vor dem ersten Textelement oder nach dem letzten Textelement in der Zeichenfolge positioniert ist. Wenn sich der Aufzählungsator in einem ungültigen Zustand befindet, wird versucht, den Wert der Current Eigenschaft abzurufen, eine Ausnahme ausgelöst. Sie können bestimmen, ob sich der Aufzählungsator in einem ungültigen Zustand befindet, indem Sie testen, ob der Rückgabewert der MoveNext Eigenschaft ist false.

Das TextElementEnumerator Objekt stellt eine Momentaufnahme des aktuellen Zustands einer Zeichenfolgenvariable oder eines Zeichenfolgen literal zum Zeitpunkt dar, an dem das TextElementEnumerator Objekt instanziiert wird. Beachten Sie dabei Folgendes:

  • Textelement-Aufzählungen können nur verwendet werden, um Daten in einer Zeichenfolge zu lesen. Sie können die zugrunde liegende Zeichenfolge nicht ändern.

  • Ein Aufzählerator hat keinen exklusiven Zugriff auf die Zeichenfolge, die er darstellt. Eine Zeichenfolgenvariable kann geändert werden, nachdem der Aufzählungsator erstellt wurde.

  • Ein TextElementEnumerator Objekt enumeziert die Textelemente, die zur Zeit, zu der das TextElementEnumerator Objekt instanziiert wurde, in der Zeichenfolge vorhanden sind. Es spiegelt keine nachfolgenden Änderungen an der Zeichenfolgenvariable wider, wenn diese Variable danach geändert wird.

  • Da die TextElementEnumerator Klasse nicht außer Kraft Object.Equalsgesetzt wird, werden zwei TextElementEnumerator Objekte, die dieselbe Zeichenfolge darstellen, ungleich angesehen.

Eigenschaften

Current

Ruft das aktuelle Textelement in der Zeichenfolge ab.

ElementIndex

Ruft den Index des Textelements ab, über dem sich der Enumerator gerade befindet.

Methoden

Equals(Object)

Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist.

(Geerbt von Object)
GetHashCode()

Fungiert als Standardhashfunktion.

(Geerbt von Object)
GetTextElement()

Ruft das aktuelle Textelement in der Zeichenfolge ab.

GetType()

Ruft den Type der aktuellen Instanz ab.

(Geerbt von Object)
MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.

(Geerbt von Object)
MoveNext()

Setzt den Enumerator auf das nächste Textelement der Zeichenfolge.

Reset()

Setzt den Enumerator auf seine anfängliche Position vor dem ersten Textelement in der Zeichenfolge.

ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.

(Geerbt von Object)

Gilt für

Siehe auch