TextElementEnumerator Klasse

Definition

Listet die Textelemente einer Zeichenfolge auf.Enumerates the text elements of a string.

public ref class TextElementEnumerator : System::Collections::IEnumerator
[System.Runtime.InteropServices.ComVisible(true)]
[System.Serializable]
public class TextElementEnumerator : System.Collections.IEnumerator
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.The following example uses the TextElementEnumerator class to enumerate the text elements of a string.

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]:    a`      a`
[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]:    a`      a`
[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]:    a`      a`
'[4]:    Æ       Æ

Hinweise

Die .NET Framework definiert ein Textelement als eine Einheit von Text, die als einzelnes Zeichen, d. h. als Grapheme, angezeigt wird.The .NET Framework defines a text element as a unit of text that is displayed as a single character, that is, a grapheme. Ein Textelement kann eines der folgenden sein:A text element can be any of the following:

  • Ein Basiszeichen, das als einzelner Char Wert dargestellt wird.A base character, which is represented as a single Char value. Beispielsweise sind Lateinische Großbuchstaben A (u + 0041) und Latin Small Letter AE (u + 00e6) Basiszeichen.For example, LATIN CAPITAL LETTER A (U+0041) and LATIN SMALL LETTER AE (U+00E6) are base characters.

  • Eine kombinierte Zeichenfolge, die aus einem Basiszeichen und einem oder mehreren kombinierten Zeichen besteht.A combining character sequence, which consists of a base character and one or more combining characters. Beispiel: Lateinisch Großbuchstabe A (u + 0041), gefolgt von der Kombination von MACRON (u + 0304), ist eine kombinierte Zeichen Sequenz.For example, example, LATIN CAPITAL LETTER A (U+0041) followed by COMBINING MACRON (U+0304) is a combining character sequence.

  • Ersatz Zeichenpaare, die der Unicode-Standard als codierte Zeichen Darstellung für ein einzelnes abstraktes Zeichen definiert, das aus einer Sequenz von zwei Code Einheiten besteht: ein hohes Ersatz Zeichen und ein niedriges Ersatz Zeichen.Surrogate pairs, which the Unicode Standard defines as a coded character representation for a single abstract character that consists of a sequence of two code units: a high surrogate, and a low surrogate. Ersatzpaare werden verwendet, um Zeichen außerhalb der Unicode-Basis-mehrsprachigen Ebene als UTF-16-codierte Zeichen darzustellen.Surrogate pairs are used to represent characters outside of the Unicode Basic Multilingual Plane as UTF-16 encoded characters. Der gotische Buchstabe sauil (U + 10343) wird z. b. in UTF-16-Codierung als hohes Ersatz Zeichen dargestellt, dessen Wert 0xD800 ist, und ein niedriges Ersatz Zeichen, dessen Wert 0xdf43 ist.For example, GOTHIC LETTER SAUIL (U+10343) is represented in UTF-16 encoding as a high surrogate whose value is 0xD800 and a low surrogate whose value is 0xDF43. Ein Ersatz Zeichenpaar kann ein Basiszeichen oder ein Kombinations Zeichen darstellen.A surrogate pair can represent a base character or a combining character.

Die TextElementEnumerator -Klasse ermöglicht es Ihnen, mit den Textelementen in einer Zeichenfolge statt mit Char einzelnen Objekten zu arbeiten.The TextElementEnumerator class allows you to work with the text elements in a string rather than with single Char objects.

Instanziieren Sie ein TextElementEnumerator -Objekt, das eine bestimmte Zeichenfolge darstellt, indem Sie StringInfo.GetTextElementEnumerator die Zeichenfolge an die-Methode übergeben.You instantiate a TextElementEnumerator object that represents a particular string by passing the string to the StringInfo.GetTextElementEnumerator method. Dadurch wird ein Enumerator zurückgegeben, der vor dem ersten Textelement in der Zeichenfolge positioniert ist.This returns an enumerator that is positioned before the first text element in the string. Durch den Reset Aufruf der-Methode wird der Enumerator ebenfalls auf diese Position zurückversetzt.Calling the Reset method also brings the enumerator back to this position. Da dies einen ungültigen Zustand darstellt, muss aufgerufen MoveNext werden, um den Enumerator auf das erste Textelement der Zeichenfolge zu setzen, bevor der Current Wert der-Eigenschaft gelesen wird, um das aktuelle Textelement zurückzugeben.Because this represents an invalid state, you must call MoveNext to advance the enumerator to the first text element of the string before reading the value of the Current property to return the current text element.

Wenn Sie mit einem TextElementEnumerator -Objekt arbeiten, sind Sie dafür verantwortlich, den Enumerator zu positionieren.When working with a TextElementEnumerator object, you are responsible for positioning the enumerator. Die Current -Eigenschaft gibt dasselbe Textelement zurück, bis Sie MoveNext entweder Resetoder aufgerufen haben.The Current property returns the same text element until you call either MoveNext or Reset. Der Enumerator befindet sich in einem ungültigen Zustand, wenn er vor dem ersten Textelement oder hinter dem letzten Textelement in der Zeichenfolge positioniert ist.The enumerator is in an invalid state if it is positioned before the first text element or after the last text element in the string. Wenn sich der Enumerator in einem ungültigen Zustand befindet, wird beim Versuch, den Current Wert der-Eigenschaft abzurufen, eine Ausnahme ausgelöst.When the enumerator is in an invalid state, attempting to retrieve the value of the Current property throws an exception. Sie können bestimmen, ob sich der Enumerator in einem ungültigen Zustand befindet, indem Sie überprüfen MoveNext , ob falseder Rückgabewert der-Eigenschaft ist.You can determine whether the enumerator is in an invalid state by testing whether the return value of the MoveNext property is false.

Das TextElementEnumerator -Objekt stellt eine Momentaufnahme des aktuellen Status einer Zeichen folgen Variablen oder eines Zeichenfolgenliterals dar TextElementEnumerator , wenn das Objekt instanziiert wird.The TextElementEnumerator object represents a snapshot of the current state of a string variable or string literal at the moment that the TextElementEnumerator object is instantiated. Hinweis:Note that:

  • Text Element-Enumeratoren können nur zum Lesen von Daten in einer Zeichenfolge verwendet werden.Text element enumerators can only be used to read data in a string. Die zugrunde liegende Zeichenfolge kann nicht geändert werden.They cannot modify the underlying string.

  • Ein Enumerator hat keinen exklusiven Zugriff auf die Zeichenfolge, die er darstellt.An enumerator does not have exclusive access to the string that it represents. Eine Zeichen folgen Variable kann geändert werden, nachdem der Enumerator erstellt wurde.A string variable can be modified after the enumerator is created.

  • Ein TextElementEnumerator -Objekt listet die Textelemente auf TextElementEnumerator , die in der Zeichenfolge zum Zeitpunkt der instanziierten-Objekts vorhanden waren.A TextElementEnumerator object enumerates the text elements present in the string at the time that the TextElementEnumerator object was instantiated. Sie spiegelt keine nachfolgenden Änderungen an der Zeichen folgen Variablen wider, wenn diese Variable später geändert wird.It does not reflect any subsequent changes to the string variable if that variable is modified afterward.

  • Da die TextElementEnumerator -Klasse nicht über Object.Equalsschrieben wird TextElementEnumerator , werden zwei-Objekte, die dieselbe Zeichenfolge darstellen, als ungleich betrachtet.Because the TextElementEnumerator class does not override Object.Equals, two TextElementEnumerator objects that represent the same string will be considered unequal.

Eigenschaften

Current

Ruft das aktuelle Textelement in der Zeichenfolge ab.Gets the current text element in the string.

ElementIndex

Ruft den Index des Textelements ab, über dem sich der Enumerator gerade befindet.Gets the index of the text element that the enumerator is currently positioned over.

Methoden

Equals(Object)

Ermittelt, ob das angegebene Objekt und das aktuelle Objekt gleich sind.Determines whether the specified object is equal to the current object.

(Geerbt von Object)
GetHashCode()

Dient als die Standard-HashfunktionServes as the default hash function.

(Geerbt von Object)
GetTextElement()

Ruft das aktuelle Textelement in der Zeichenfolge ab.Gets the current text element in the string.

GetType()

Ruft den Type der aktuellen Instanz ab.Gets the Type of the current instance.

(Geerbt von Object)
MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.Creates a shallow copy of the current Object.

(Geerbt von Object)
MoveNext()

Setzt den Enumerator auf das nächste Textelement der Zeichenfolge.Advances the enumerator to the next text element of the string.

Reset()

Setzt den Enumerator auf seine anfängliche Position vor dem ersten Textelement in der Zeichenfolge.Sets the enumerator to its initial position, which is before the first text element in the string.

ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.Returns a string that represents the current object.

(Geerbt von Object)

Gilt für:

Siehe auch