StringInfo.GetTextElementEnumerator Methode
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.
Gibt einen Enumerator zurück, der die Textelemente einer Zeichenfolge durchläuft.
Überlädt
| Name | Beschreibung |
|---|---|
| GetTextElementEnumerator(String) |
Gibt einen Enumerator zurück, der die Textelemente der gesamten Zeichenfolge durchläuft. |
| GetTextElementEnumerator(String, Int32) |
Gibt einen Enumerator zurück, der die Textelemente der Zeichenfolge durchläuft, beginnend mit dem angegebenen Index. |
GetTextElementEnumerator(String)
- Quelle:
- StringInfo.cs
- Quelle:
- StringInfo.cs
- Quelle:
- StringInfo.cs
- Quelle:
- StringInfo.cs
- Quelle:
- StringInfo.cs
Gibt einen Enumerator zurück, der die Textelemente der gesamten Zeichenfolge durchläuft.
public:
static System::Globalization::TextElementEnumerator ^ GetTextElementEnumerator(System::String ^ str);
public static System.Globalization.TextElementEnumerator GetTextElementEnumerator(string str);
static member GetTextElementEnumerator : string -> System.Globalization.TextElementEnumerator
Public Shared Function GetTextElementEnumerator (str As String) As TextElementEnumerator
Parameter
- str
- String
Die Zeichenfolge, die durchlaufen werden soll.
Gibt zurück
A TextElementEnumerator für die gesamte Zeichenfolge.
Ausnahmen
str ist null.
Beispiele
Im folgenden Beispiel wird das Aufrufen der GetTextElementEnumerator-Methode veranschaulicht. Dieses Beispiel ist Teil eines größeren Beispiels, das für die StringInfo Klasse bereitgestellt wird.
using System;
using System.Text;
using System.Globalization;
public sealed class App {
static void Main() {
// The string below contains combining characters.
String s = "a\u0304\u0308bc\u0327";
// Show each 'character' in the string.
EnumTextElements(s);
// Show the index in the string where each 'character' starts.
EnumTextElementIndexes(s);
}
// Show how to enumerate each real character (honoring surrogates) in a string.
static void EnumTextElements(String s) {
// This StringBuilder holds the output results.
StringBuilder sb = new StringBuilder();
// Use the enumerator returned from GetTextElementEnumerator
// method to examine each real character.
TextElementEnumerator charEnum = StringInfo.GetTextElementEnumerator(s);
while (charEnum.MoveNext()) {
sb.AppendFormat(
"Character at index {0} is '{1}'{2}",
charEnum.ElementIndex, charEnum.GetTextElement(),
Environment.NewLine);
}
// Show the results.
Console.WriteLine("Result of GetTextElementEnumerator:");
Console.WriteLine(sb);
}
// Show how to discover the index of each real character (honoring surrogates) in a string.
static void EnumTextElementIndexes(String s) {
// This StringBuilder holds the output results.
StringBuilder sb = new StringBuilder();
// Use the ParseCombiningCharacters method to
// get the index of each real character in the string.
Int32[] textElemIndex = StringInfo.ParseCombiningCharacters(s);
// Iterate through each real character showing the character and the index where it was found.
for (Int32 i = 0; i < textElemIndex.Length; i++) {
sb.AppendFormat(
"Character {0} starts at index {1}{2}",
i, textElemIndex[i], Environment.NewLine);
}
// Show the results.
Console.WriteLine("Result of ParseCombiningCharacters:");
Console.WriteLine(sb);
}
}
// This code produces the following output:
//
// Result of GetTextElementEnumerator:
// Character at index 0 is 'ā̈'
// Character at index 3 is 'b'
// Character at index 4 is 'ç'
//
// Result of ParseCombiningCharacters:
// Character 0 starts at index 0
// Character 1 starts at index 3
// Character 2 starts at index 4
Imports System.Text
Imports System.Globalization
Public Module Example
Public Sub Main()
' The string below contains combining characters.
Dim s As String = "a" + ChrW(&h0304) + ChrW(&h0308) + "bc" + ChrW(&h0327)
' Show each 'character' in the string.
EnumTextElements(s)
' Show the index in the string where each 'character' starts.
EnumTextElementIndexes(s)
End Sub
' Show how to enumerate each real character (honoring surrogates) in a string.
Sub EnumTextElements(s As String)
' This StringBuilder holds the output results.
Dim sb As New StringBuilder()
' Use the enumerator returned from GetTextElementEnumerator
' method to examine each real character.
Dim charEnum As TextElementEnumerator = StringInfo.GetTextElementEnumerator(s)
Do While charEnum.MoveNext()
sb.AppendFormat("Character at index {0} is '{1}'{2}",
charEnum.ElementIndex,
charEnum.GetTextElement(),
Environment.NewLine)
Loop
' Show the results.
Console.WriteLine("Result of GetTextElementEnumerator:")
Console.WriteLine(sb)
End Sub
' Show how to discover the index of each real character (honoring surrogates) in a string.
Sub EnumTextElementIndexes(s As String)
' This StringBuilder holds the output results.
Dim sb As New StringBuilder()
' Use the ParseCombiningCharacters method to
' get the index of each real character in the string.
Dim textElemIndex() As Integer = StringInfo.ParseCombiningCharacters(s)
' Iterate through each real character showing the character and the index where it was found.
For i As Int32 = 0 To textElemIndex.Length - 1
sb.AppendFormat("Character {0} starts at index {1}{2}",
i, textElemIndex(i), Environment.NewLine)
Next
' Show the results.
Console.WriteLine("Result of ParseCombiningCharacters:")
Console.WriteLine(sb)
End Sub
End Module
' The example displays the following output:
'
' Result of GetTextElementEnumerator:
' Character at index 0 is 'ā̈'
' Character at index 3 is 'b'
' Character at index 4 is 'ç'
'
' Result of ParseCombiningCharacters:
' Character 0 starts at index 0
' Character 1 starts at index 3
' Character 2 starts at index 4
Hinweise
.NET definiert ein Textelement als Eine Texteinheit, die als einzelnes Zeichen angezeigt wird, d. h. als Grapheme. Ein Textelement kann ein Basiszeichen, ein Ersatzpaar oder eine kombinierte Zeichenfolge sein. Der Unicode-Standard definiert ein Ersatzpaar als codierte Zeichendarstellung für ein einzelnes abstraktes Zeichen, das aus einer Abfolge von zwei Codeeinheiten besteht, wobei die erste Einheit des Paars ein hoher Ersatz ist und der zweite ein niedriger Ersatz ist. Der Unicode-Standard definiert eine kombinationsierende Zeichenfolge als Kombination aus einem Basiszeichen und einem oder mehreren kombinierten Zeichen. Ein Ersatzpaar kann ein Basiszeichen oder ein kombiniertes Zeichen darstellen.
Der Enumerator des Textelements wird nur zum Lesen von Daten in der Zeichenfolge verwendet. sie kann die zugrunde liegende Zeichenfolge nicht ändern. Der Enumerator hat keinen exklusiven Zugriff auf die Zeichenfolge.
Der Enumerator befindet sich in einem ungültigen Zustand, wenn er vor dem ersten Textelement in der Zeichenfolge oder nach dem letzten Textelement in der Zeichenfolge positioniert wird. Wenn sich der Enumerator in einem ungültigen Zustand befindet, löst der Aufruf Current eine Ausnahme aus.
Zunächst wird der Enumerator vor dem ersten Textelement in der Zeichenfolge positioniert. Reset bringt den Enumerator auch wieder an diese Position zurück. Daher muss nach dem Erstellen oder Aufrufen Reset eines Enumerators der Enumerator aufgerufen werden, MoveNext um den Enumerator zum ersten Textelement der Zeichenfolge vor dem Lesen des Werts von Current.
Current gibt dasselbe Objekt zurück, bis eine MoveNext oder Reset mehrere Aufrufe ausgeführt werden.
Nachdem das Ende der Zeichenfolge übergeben wurde, befindet sich der Enumerator erneut in einem ungültigen Zustand und der Aufruf MoveNext wird zurückgegeben false. Beim Aufrufen Current wird eine Ausnahme ausgelöst, wenn der letzte aufruf, der zurückgegeben werden soll MoveNextfalse.
Weitere Informationen
Gilt für:
GetTextElementEnumerator(String, Int32)
- Quelle:
- StringInfo.cs
- Quelle:
- StringInfo.cs
- Quelle:
- StringInfo.cs
- Quelle:
- StringInfo.cs
- Quelle:
- StringInfo.cs
Gibt einen Enumerator zurück, der die Textelemente der Zeichenfolge durchläuft, beginnend mit dem angegebenen Index.
public:
static System::Globalization::TextElementEnumerator ^ GetTextElementEnumerator(System::String ^ str, int index);
public static System.Globalization.TextElementEnumerator GetTextElementEnumerator(string str, int index);
static member GetTextElementEnumerator : string * int -> System.Globalization.TextElementEnumerator
Public Shared Function GetTextElementEnumerator (str As String, index As Integer) As TextElementEnumerator
Parameter
- str
- String
Die Zeichenfolge, die durchlaufen werden soll.
- index
- Int32
Der nullbasierte Index, an dem die Iterierung beginnen soll.
Gibt zurück
A TextElementEnumerator für die Zeichenfolge beginnend bei index.
Ausnahmen
str ist null.
index liegt außerhalb des Bereichs gültiger Indizes für str.
Hinweise
.NET definiert ein Textelement als Eine Texteinheit, die als einzelnes Zeichen angezeigt wird, d. h. als Grapheme. Ein Textelement kann ein Basiszeichen, ein Ersatzpaar oder eine kombinierte Zeichenfolge sein. Der Unicode-Standard definiert ein Ersatzpaar als codierte Zeichendarstellung für ein einzelnes abstraktes Zeichen, das aus einer Abfolge von zwei Codeeinheiten besteht, wobei die erste Einheit des Paars ein hoher Ersatz ist und der zweite ein niedriger Ersatz ist. Der Unicode-Standard definiert eine kombinationsierende Zeichenfolge als Kombination aus einem Basiszeichen und einem oder mehreren kombinierten Zeichen. Ein Ersatzpaar kann ein Basiszeichen oder ein kombiniertes Zeichen darstellen.
Der Enumerator des Textelements wird nur zum Lesen von Daten in der Zeichenfolge verwendet. sie kann die zugrunde liegende Zeichenfolge nicht ändern. Der Enumerator hat keinen exklusiven Zugriff auf die Zeichenfolge.
Der Enumerator befindet sich in einem ungültigen Zustand, wenn er vor dem ersten Textelement in der Zeichenfolge oder nach dem letzten Textelement in der Zeichenfolge positioniert wird. Wenn sich der Enumerator in einem ungültigen Zustand befindet, löst der Aufruf Current eine Ausnahme aus.
Zunächst wird der Enumerator vor dem ersten Textelement in der Zeichenfolge positioniert. Reset bringt den Enumerator auch wieder an diese Position zurück. Daher muss nach dem Erstellen oder Aufrufen Reset eines Enumerators der Enumerator aufgerufen werden, MoveNext um den Enumerator zum ersten Textelement der Zeichenfolge vor dem Lesen des Werts von Current.
Current gibt dasselbe Objekt zurück, bis eine MoveNext oder Reset mehrere Aufrufe ausgeführt werden.
Nachdem das Ende der Zeichenfolge übergeben wurde, befindet sich der Enumerator erneut in einem ungültigen Zustand und der Aufruf MoveNext wird zurückgegeben false. Beim Aufrufen Current wird eine Ausnahme ausgelöst, wenn der letzte aufruf, der zurückgegeben werden soll MoveNextfalse.