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 aufzuzählen.

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

Der .NET Framework definiert ein Textelement als Texteinheit, die als einzelnes Zeichen, d. h. als Graphem, angezeigt wird. Ein Textelement kann eine der folgenden Sein:

  • Ein Basiszeichen, das als einzelner Wert dargestellt Char wird. So sind z. B. LATIN CAPITAL LETTER A (U+0041) und LATIN SMALL LETTER AE (U+00E6) Basiszeichen.

  • Eine kombinierende Zeichensequenz, die aus einem Basiszeichen und einem oder mehreren Kombinationszeichen besteht. Beispielsweise ist LATIN CAPITAL LETTER A (U+0041) gefolgt von COMBINING MACRON (U+0304) eine kombinierende Zeichensequenz.

  • Ersatzzeichenpaare, die der Unicode-Standard als codierte Zeichendarstellung für ein einzelnes abstraktes Zeichen definiert, das aus einer Sequenz von zwei Codeeinheiten besteht: einem hohen Ersatzzeichen und einem niedrigen Ersatzzeichen. Ersatzzeichenpaare werden verwendet, um Zeichen außerhalb der Unicode Basic Multilingual Plane als UTF-16-codierte Zeichen darzustellen. Beispielsweise wird DER LETTER-WERT (U+10343) in der UTF-16-Codierung als hohes Ersatzzeichen dargestellt, dessen Wert 0xD800 ist, und ein niedriges Ersatzzeichen, dessen Wert 0xDF43 ist. Ein Ersatzzeichenpaar kann ein Basiszeichen oder ein kombinierendes Zeichen darstellen.

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

Sie instanziieren ein TextElementEnumerator -Objekt, das eine bestimmte Zeichenfolge darstellt, indem Sie die Zeichenfolge an die StringInfo.GetTextElementEnumerator -Methode übergeben. Dadurch wird ein Enumerator zurückgegeben, der vor dem ersten Textelement in der Zeichenfolge positioniert ist. Wenn Sie die -Methode aufrufen, Reset wird der Enumerator auch wieder an diese Position zurückführt. Da dies einen ungültigen Zustand darstellt, müssen Sie aufrufen, MoveNext um den Enumerator auf das erste Textelement der Zeichenfolge zu setzen, bevor Sie den Wert der Current -Eigenschaft lesen, um das aktuelle Textelement zurückzugeben.

Wenn Sie mit einem TextElementEnumerator -Objekt arbeiten, sind Sie für die Positionierung des Enumerators verantwortlich. Die Current -Eigenschaft gibt das gleiche Textelement zurück, bis Sie entweder MoveNext oder Reset aufrufen. Der Enumerator 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 Enumerator in einem ungültigen Zustand befindet, löst der Versuch, den Wert der Current Eigenschaft abzurufen, eine Ausnahme aus. Sie können ermitteln, ob sich der Enumerator in einem ungültigen Zustand befindet, indem Sie testen, ob der Rückgabewert der MoveNext Eigenschaft false ist.

Das TextElementEnumerator -Objekt stellt eine Momentaufnahme des aktuellen Zustands einer Zeichenfolgenvariablen oder eines Zeichenfolgenliterals zum Zeitpunkt der TextElementEnumerator Instanziierung des Objekts dar. Beachten Sie dabei Folgendes:

  • Textelement-Enumeratoren können nur zum Lesen von Daten in einer Zeichenfolge verwendet werden. Sie können die zugrunde liegende Zeichenfolge nicht ändern.

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

  • Ein TextElementEnumerator -Objekt listet die Textelemente auf, die zum Zeitpunkt der Instanziierung des Objekts in der Zeichenfolge vorhanden TextElementEnumerator waren. Sie spiegelt keine nachfolgenden Änderungen an der Zeichenfolgenvariablen wider, wenn diese Variable anschließend geändert wird.

  • Da die TextElementEnumerator -Klasse nicht überschreibt, Object.Equals werden zwei TextElementEnumerator -Objekte, die die gleiche Zeichenfolge darstellen, als ungleich betrachtet.

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