StringInfo.GetTextElementEnumerator Methode
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Retourneert een opsomming die de tekstelementen van een tekenreeks doorloopt.
Overloads
| Name | Description |
|---|---|
| GetTextElementEnumerator(String) |
Retourneert een opsomming die de tekstelementen van de hele tekenreeks doorloopt. |
| GetTextElementEnumerator(String, Int32) |
Retourneert een enumerator die de tekstelementen van de tekenreeks doorloopt, te beginnen bij de opgegeven index. |
GetTextElementEnumerator(String)
- Bron:
- StringInfo.cs
- Bron:
- StringInfo.cs
- Bron:
- StringInfo.cs
- Bron:
- StringInfo.cs
- Bron:
- StringInfo.cs
Retourneert een opsomming die de tekstelementen van de hele tekenreeks doorloopt.
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
Parameters
- str
- String
De tekenreeks die moet worden herhaald.
Retouren
Een TextElementEnumerator voor de hele tekenreeks.
Uitzonderingen
str is null.
Voorbeelden
In het volgende voorbeeld ziet u hoe u de GetTextElementEnumerator methode aanroept. Dit voorbeeld maakt deel uit van een groter voorbeeld voor de StringInfo klasse.
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
Opmerkingen
.NET definieert een tekstelement als een teksteenheid die wordt weergegeven als één teken, dat wil gezegd een grafeme. Een tekstelement kan een basisteken, een surrogaatpaar of een combinatietekenreeks zijn. De Unicode-standaard definieert een surrogaatpaar als een gecodeerde tekenweergave voor één abstract teken dat bestaat uit een reeks van twee code-eenheden, waarbij de eerste eenheid van het paar een hoog surrogaat is en de tweede een laag surrogaat is. De Unicode-standaard definieert een combinatietekenreeks als een combinatie van een basisteken en een of meer combinaties van tekens. Een surrogaatpaar kan een basisteken of een combinatieteken vertegenwoordigen.
De enumerator voor tekstelementen wordt alleen gebruikt om gegevens in de tekenreeks te lezen; de onderliggende tekenreeks kan niet worden gewijzigd. De enumerator heeft geen exclusieve toegang tot de tekenreeks.
De enumerator heeft een ongeldige status als deze vóór het eerste tekstelement in de tekenreeks of na het laatste tekstelement in de tekenreeks wordt geplaatst. Wanneer de enumerator een ongeldige status heeft, genereert aanroepen Current een uitzondering.
In eerste instantie wordt de enumerator vóór het eerste tekstelement in de tekenreeks weergegeven. Reset brengt ook de enumerator terug naar deze positie. Daarom moet, nadat een enumerator is gemaakt of nadat Reset is aangeroepen, MoveNext worden aangeroepen om de enumerator naar het eerste tekstelement van de tekenreeks te gaan voordat de waarde wordt Currentgelezen.
Current retourneert hetzelfde object tot MoveNext of Reset wordt aangeroepen.
Nadat het einde van de tekenreeks is doorgegeven, bevindt de enumerator zich opnieuw in een ongeldige status en retourneert MoveNextaanroepenfalse. Bellen Current genereert een uitzondering als de laatste aanroep die moet MoveNext worden falsegeretourneerd.
Zie ook
Van toepassing op
GetTextElementEnumerator(String, Int32)
- Bron:
- StringInfo.cs
- Bron:
- StringInfo.cs
- Bron:
- StringInfo.cs
- Bron:
- StringInfo.cs
- Bron:
- StringInfo.cs
Retourneert een enumerator die de tekstelementen van de tekenreeks doorloopt, te beginnen bij de opgegeven 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
Parameters
- str
- String
De tekenreeks die moet worden herhaald.
- index
- Int32
De op nul gebaseerde index waarop moet worden herhaald.
Retouren
A TextElementEnumerator voor de tekenreeks die begint bij index.
Uitzonderingen
str is null.
index valt buiten het bereik van geldige indexen voor str.
Opmerkingen
.NET definieert een tekstelement als een teksteenheid die wordt weergegeven als één teken, dat wil gezegd een grafeme. Een tekstelement kan een basisteken, een surrogaatpaar of een combinatietekenreeks zijn. De Unicode-standaard definieert een surrogaatpaar als een gecodeerde tekenweergave voor één abstract teken dat bestaat uit een reeks van twee code-eenheden, waarbij de eerste eenheid van het paar een hoog surrogaat is en de tweede een laag surrogaat is. De Unicode-standaard definieert een combinatietekenreeks als een combinatie van een basisteken en een of meer combinaties van tekens. Een surrogaatpaar kan een basisteken of een combinatieteken vertegenwoordigen.
De enumerator voor tekstelementen wordt alleen gebruikt om gegevens in de tekenreeks te lezen; de onderliggende tekenreeks kan niet worden gewijzigd. De enumerator heeft geen exclusieve toegang tot de tekenreeks.
De enumerator heeft een ongeldige status als deze vóór het eerste tekstelement in de tekenreeks of na het laatste tekstelement in de tekenreeks wordt geplaatst. Wanneer de enumerator een ongeldige status heeft, genereert aanroepen Current een uitzondering.
In eerste instantie wordt de enumerator vóór het eerste tekstelement in de tekenreeks weergegeven. Reset brengt ook de enumerator terug naar deze positie. Daarom moet, nadat een enumerator is gemaakt of nadat Reset is aangeroepen, MoveNext worden aangeroepen om de enumerator naar het eerste tekstelement van de tekenreeks te gaan voordat de waarde wordt Currentgelezen.
Current retourneert hetzelfde object tot MoveNext of Reset wordt aangeroepen.
Nadat het einde van de tekenreeks is doorgegeven, bevindt de enumerator zich opnieuw in een ongeldige status en retourneert MoveNextaanroepenfalse. Bellen Current genereert een uitzondering als de laatste aanroep die moet MoveNext worden falsegeretourneerd.