TextElementEnumerator Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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 zum Aufzählen der Textelemente einer Zeichenfolge verwendet.
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
.NET Framework definiert ein Textelement als Eine Texteinheit, die als einzelnes Zeichen angezeigt wird, d. h. als Grapheme. Ein Textelement kann eine der folgenden 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 kombinierte Zeichenfolge, die aus einem Basiszeichen und einem oder mehreren kombinierten Zeichen besteht. Beispielsweise ist LATIN CAPITAL LETTER A (U+0041) gefolgt von KOMBINATIONEN VON MAKRO (U+0304) eine kombinierte Zeichenfolge.
Ersatzpaare, die vom Unicode-Standard als codierte Zeichendarstellung für ein einzelnes abstraktes Zeichen definiert werden, das aus einer Sequenz von zwei Codeeinheiten besteht: einem hohen Ersatz und einem niedrigen Ersatz. Ersatzpaare werden verwendet, um Zeichen außerhalb der Unicode Basic Multilingual Plane als UTF-16-codierte Zeichen darzustellen. Beispielsweise wird GOTHIC LETTER SAUIL (U+10343) in UTF-16-Codierung als hohe Ersatz dargestellt, deren Wert 0xD800 und ein niedriger Ersatz, dessen Wert 0xDF43 ist. Ein Ersatzpaar kann ein Basiszeichen oder ein kombiniertes 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 Aufrufen der Reset Methode wird auch der Enumerator an diese Position zurück. Da dies einen ungültigen Zustand darstellt, müssen Sie aufrufen MoveNext , um den Enumerator zum ersten Textelement der Zeichenfolge zu wechseln, bevor Sie den Wert der Current Eigenschaft lesen, um das aktuelle Textelement zurückzugeben.
Beim Arbeiten mit einem TextElementEnumerator Objekt sind Sie für die Positionierung des Enumerators verantwortlich. Die Current Eigenschaft gibt dasselbe Textelement zurück, bis Sie entweder MoveNext oder Reset. 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 lautet false.
Das TextElementEnumerator Objekt stellt eine Momentaufnahme des aktuellen Zustands einer Zeichenfolgenvariable oder eines Zeichenfolgenliterals zum Zeitpunkt der Instanziierung des TextElementEnumerator Objekts dar. Beachten Sie Folgendes:
Textelementenumeratoren 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 von ihr dargestellte Zeichenfolge. Eine Zeichenfolgenvariable kann geändert werden, nachdem der Enumerator erstellt wurde.
Ein TextElementEnumerator Objekt listet die Textelemente auf, die in der Zeichenfolge zum Zeitpunkt der Instanziierung des TextElementEnumerator Objekts 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 setzt Object.Equals, werden zwei TextElementEnumerator Objekte, die dieselbe Zeichenfolge darstellen, als ungleich betrachtet.
Eigenschaften
| Name | Beschreibung |
|---|---|
| Current |
Ruft das aktuelle Textelement in der Zeichenfolge ab. |
| ElementIndex |
Ruft den Index des Textelements ab, über dem der Enumerator derzeit positioniert ist. |
Methoden
| Name | Beschreibung |
|---|---|
| Equals(Object) |
Bestimmt, ob das angegebene Objekt dem aktuellen Objekt entspricht. (Geerbt von Object) |
| GetHashCode() |
Dient als Standardhashfunktion. (Geerbt von Object) |
| GetTextElement() |
Ruft das aktuelle Textelement in der Zeichenfolge ab. |
| GetType() |
Ruft die Type der aktuellen Instanz ab. (Geerbt von Object) |
| MemberwiseClone() |
Erstellt eine flache Kopie der aktuellen Object. (Geerbt von Object) |
| MoveNext() |
Wechselt den Enumerator zum nächsten Textelement der Zeichenfolge. |
| Reset() |
Legt den Enumerator auf seine Anfangsposition fest, die sich vor dem ersten Textelement in der Zeichenfolge befindet. |
| ToString() |
Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt. (Geerbt von Object) |