Freigeben über


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 aufzulisten.

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

Die .NET Framework definiert ein Textelement als Eine Texteinheit, die als einzelnes Zeichen, d. h. als Graphem, angezeigt wird. Ein Textelement kann folgendes sein:

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

  • Eine kombinationsbasierte Zeichenfolge, die aus einem Basiszeichen und einem oder mehreren kombinationsbasierten Zeichen besteht. Beispielsweise ist latin capital letter A (U+0041) gefolgt von COMBINING MACRON (U+0304) eine kombinierende Zeichenfolge.

  • Ersatzpaare, die vom Unicode-Standard als codierte Zeichendarstellung für ein einzelnes abstraktes Zeichen definiert werden, das aus einer Sequenz aus zwei Codeeinheiten besteht: einem hohen Ersatz und einem niedrigen Ersatz. Ersatzpaare werden verwendet, um Zeichen außerhalb der mehrsprachigen Unicode Basic-Ebene als UTF-16-codierte Zeichen darzustellen. Beispielsweise wird GOTHIC LETTER SAUIL (U+10343) in der UTF-16-Codierung als hohes Ersatzzeichen dargestellt, dessen Wert 0xD800 ist, und ein niedriger Ersatz, dessen Wert 0xDF43 ist. Ein Ersatzpaar kann ein Basiszeichen oder ein kombinierendes Zeichen darstellen.

Mit TextElementEnumerator der -Klasse können Sie mit den Textelementen in einer Zeichenfolge und nicht mit einzelnen Char Objekten 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. Durch Das Aufrufen der Reset -Methode wird auch der Enumerator wieder an diese Position zurückgebracht. Da dies einen ungültigen Zustand darstellt, müssen Sie aufrufen MoveNext , um den Enumerator auf das erste Textelement der Zeichenfolge weiterzubilden, 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 dasselbe Textelement zurück, bis Sie entweder MoveNext oder Resetaufrufen. 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 ist false.

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

  • Textelementenumeratoren können nur zum Lesen von Daten in einer Zeichenfolge verwendet werden. Die zugrunde liegende Zeichenfolge kann nicht geändert werden.

  • 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 TextElementEnumerator Zeichenfolge vorhanden sind. Es spiegelt keine nachfolgenden Änderungen an der Zeichenfolgenvariable wider, wenn diese Variable anschließend geändert wird.

  • Da die TextElementEnumerator -Klasse nicht überschreibt Object.Equals, werden zwei TextElementEnumerator Objekte, die dieselbe 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:

Weitere Informationen