TextElementEnumerator Třída
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Vytvoří výčet textových prvků řetězce.
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
- Dědičnost
-
TextElementEnumerator
- Atributy
- Implementuje
Příklady
Následující příklad používá třídu k vytvoření výčtu TextElementEnumerator textových prvků řetězce.
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]: Æ Æ
Poznámky
.NET Framework definuje textový prvek jako jednotku textu, která se zobrazí jako jeden znak, tj. grafeme. Textový prvek může být některý z následujících prvků:
Základní znak, který je reprezentován jako jedna Char hodnota. Například VELKÉ PÍSMENO LATINKY A (U+0041) a MALÉ PÍSMENO LATINKY AE (U+00E6) jsou základní znaky.
Kombinace znakové sekvence, která se skládá ze základního znaku a jednoho nebo více kombinujících znaků. Například VELKÁ PÍSMENA LATINKA A (U+0041) následovaná kombinací kombinace ZNAKOVÉ SEKVENCE (U+0304).
Náhradní dvojice, které standard Unicode definuje jako kódované znakové znázornění pro jeden abstraktní znak, který se skládá ze sekvence dvou jednotek kódu: vysoké náhradní a nízké náhradní. Náhradní páry se používají k reprezentaci znaků mimo základní vícejazyčnou rovinu Unicode jako kódované znaky UTF-16. Například GOTHIC LETTER SAUIL (U+10343) je reprezentován v kódování UTF-16 jako vysoká náhradní hodnota, jejíž hodnota je 0xD800 a nízká náhrada, jejíž hodnota je 0xDF43. Náhradní dvojice může představovat základní znak nebo kombinační znak.
Třída TextElementEnumerator umožňuje pracovat s textovými prvky v řetězci místo s jedním Char objektem.
Vytvoříte instanci objektu TextElementEnumerator , který představuje konkrétní řetězec předáním řetězce metodě StringInfo.GetTextElementEnumerator . Tím se vrátí enumerátor, který je umístěn před prvním textovým prvkem v řetězci. Reset Volání metody také vrátí enumerátor zpět na tuto pozici. Vzhledem k tomu, že představuje neplatný stav, je nutné před MoveNext načtením hodnoty Current vlastnosti vrátit aktuální textový prvek enumerátoru na první textový prvek řetězce.
Při práci s objektem TextElementEnumerator zodpovídáte za umístění výčtu. Vlastnost Current vrátí stejný textový prvek, dokud nevoláte nebo ResetMoveNext . Enumerátor je v neplatném stavu, pokud je umístěn před prvním textovým prvkem nebo za posledním textovým prvkem v řetězci. Pokud je enumerátor v neplatném stavu, pokus o načtení hodnoty Current vlastnosti vyvolá výjimku. Pokud chcete zjistit, zda je enumerátor v neplatném stavu, otestujte, zda je false
vrácená hodnota MoveNext vlastnosti .
Objekt TextElementEnumerator představuje snímek aktuálního stavu řetězcové proměnné nebo řetězcového literálu v okamžiku vytvoření instance objektu TextElementEnumerator . Poznámky:
Výčty textových elementů lze použít pouze ke čtení dat v řetězci. Nemůžou upravit základní řetězec.
Enumerátor nemá výhradní přístup k řetězci, který představuje. Po vytvoření enumerátoru lze upravit proměnnou řetězce.
TextElementEnumerator Objekt vypíše textové prvky, které jsou přítomné v řetězci v okamžiku vytvoření instance objektuTextElementEnumerator. Pokud se tato proměnná později upraví, neodráží žádné následné změny proměnné řetězce.
TextElementEnumerator Vzhledem k tomu, že třída nepřepíše Object.Equals, dva TextElementEnumerator objekty, které představují stejný řetězec, budou považovány za nerovné.
Vlastnosti
Current |
Získá aktuální textový prvek v řetězci. |
ElementIndex |
Získá index textového prvku, který enumerátor je aktuálně umístěn nad. |
Metody
Equals(Object) |
Určí, zda se zadaný objekt rovná aktuálnímu objektu. (Zděděno od Object) |
GetHashCode() |
Slouží jako výchozí funkce hash. (Zděděno od Object) |
GetTextElement() |
Získá aktuální textový prvek v řetězci. |
GetType() |
Type Získá aktuální instanci. (Zděděno od Object) |
MemberwiseClone() |
Vytvoří použádnou kopii aktuálního souboru Object. (Zděděno od Object) |
MoveNext() |
Posune enumerátor na další textový prvek řetězce. |
Reset() |
Nastaví enumerátor na počáteční pozici, což je před prvním textovým prvkem v řetězci. |
ToString() |
Vrátí řetězec, který představuje aktuální objekt. (Zděděno od Object) |