TextElementEnumerator Klass

Definition

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)

Gäller för

Se även