TextElementEnumerator Klass
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Räknar upp textelementen i en sträng.
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
- Arv
-
TextElementEnumerator
- Attribut
- Implementeringar
Exempel
I följande exempel används TextElementEnumerator klassen för att räkna upp textelementen i en sträng.
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]: Æ Æ
Kommentarer
.NET Framework definierar ett textelement som en textenhet som visas som ett enda tecken, dvs. ett grapheme. Ett textelement kan vara något av följande:
Ett bastecken, som representeras som ett enda Char värde. Till exempel är LATINSK VERSAL BOKSTAV A (U+0041) och LATIN SMALL LETTER AE (U+00E6) bastecken.
En kombinerande teckensekvens, som består av ett bastecken och ett eller flera kombinationstecken. Till exempel är LATINSK VERSAL BOKSTAV A (U+0041) följt av ATT KOMBINERA MACRON (U+0304) en kombinerande teckensekvens.
Surrogatpar, som Unicode Standard definierar som en kodad teckenrepresentation för ett enda abstrakt tecken som består av en sekvens med två kodenheter: en hög surrogat och en låg surrogat. Surrogatpar används för att representera tecken utanför Unicode Basic Multilingual Plane som UTF-16-kodade tecken. Till exempel representeras GOTHIC LETTER SAUIL (U+10343) i UTF-16-kodning som en hög surrogat vars värde är 0xD800 och en låg surrogat vars värde är 0xDF43. Ett surrogatpar kan representera ett bastecken eller ett kombinationstecken.
Med TextElementEnumerator klassen kan du arbeta med textelementen i en sträng i stället för med enkla Char objekt.
Du instansierar ett TextElementEnumerator objekt som representerar en viss sträng genom att skicka strängen till StringInfo.GetTextElementEnumerator metoden. Detta returnerar en uppräknare som är placerad före det första textelementet i strängen. Reset Om du anropar metoden återgår uppräknaren till den här positionen. Eftersom detta representerar ett ogiltigt tillstånd måste du anropa MoveNext för att flytta uppräknaren till det första textelementet i strängen innan du läser värdet Current för egenskapen för att returnera det aktuella textelementet.
När du arbetar med ett TextElementEnumerator objekt ansvarar du för att placera uppräknaren. Egenskapen Current returnerar samma textelement tills du anropar antingen MoveNext eller Reset. Uppräknaren är i ett ogiltigt tillstånd om den placeras före det första textelementet eller efter det sista textelementet i strängen. När uppräknaren är i ett ogiltigt tillstånd utlöser försök att hämta värdet för Current egenskapen ett undantag. Du kan avgöra om uppräknaren är i ett ogiltigt tillstånd genom att testa om returvärdet för MoveNext() egenskapen är false.
Objektet TextElementEnumerator representerar en ögonblicksbild av det aktuella tillståndet för en strängvariabel eller strängliteral när TextElementEnumerator objektet instansieras. Tänk på följande:
Textelementuppräknare kan bara användas för att läsa data i en sträng. De kan inte ändra den underliggande strängen.
En uppräknare har inte exklusiv åtkomst till strängen som den representerar. En strängvariabel kan ändras när uppräknaren har skapats.
Ett TextElementEnumerator objekt räknar upp textelementen som finns i strängen vid den tidpunkt då TextElementEnumerator objektet instansierades. Den återspeglar inte några efterföljande ändringar i strängvariabeln om variabeln ändras efteråt.
TextElementEnumerator Eftersom klassen inte åsidosätter Object.Equalsbetraktas två TextElementEnumerator objekt som representerar samma sträng som ojämlika.
Egenskaper
| Name | Description |
|---|---|
| Current |
Hämtar det aktuella textelementet i strängen. |
| ElementIndex |
Hämtar indexet för textelementet som uppräknaren för närvarande är placerad över. |
Metoder
| Name | Description |
|---|---|
| Equals(Object) |
Avgör om det angivna objektet är lika med det aktuella objektet. (Ärvd från Object) |
| GetHashCode() |
Fungerar som standard-hash-funktion. (Ärvd från Object) |
| GetTextElement() |
Hämtar det aktuella textelementet i strängen. |
| GetType() |
Hämtar den aktuella instansen Type . (Ärvd från Object) |
| MemberwiseClone() |
Skapar en ytlig kopia av den aktuella Object. (Ärvd från Object) |
| MoveNext() |
Avancerar uppräknaren till nästa textelement i strängen. |
| Reset() |
Anger uppräknaren till sin ursprungliga position, vilket är före det första textelementet i strängen. |
| ToString() |
Returnerar en sträng som representerar det aktuella objektet. (Ärvd från Object) |