StringInfo.GetTextElementEnumerator Metodo

Definizione

Restituisce un enumeratore che consente di scorrere gli elementi di testo di una stringa.

Overload

GetTextElementEnumerator(String)

Restituisce un enumeratore che consente di scorrere gli elementi di testo dell'intera stringa.

GetTextElementEnumerator(String, Int32)

Restituisce un enumeratore che consente di scorrere gli elementi di testo della stringa, a partire dall'indice specificato.

GetTextElementEnumerator(String)

Origine:
StringInfo.cs
Origine:
StringInfo.cs
Origine:
StringInfo.cs

Restituisce un enumeratore che consente di scorrere gli elementi di testo dell'intera stringa.

public static System.Globalization.TextElementEnumerator GetTextElementEnumerator (string str);

Parametri

str
String

Stringa da scorrere.

Restituisce

Oggetto TextElementEnumerator per l'intera stringa.

Eccezioni

str è null.

Esempio

Nel codice riportato di seguito viene illustrata la chiamata al metodo GetTextElementEnumerator. Questo esempio fa parte di un esempio più grande fornito per la StringInfo classe.

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

Commenti

.NET definisce un elemento di testo come unità di testo visualizzato come singolo carattere, ovvero un grapheme. Un elemento di testo può essere un carattere di base, una coppia surrogata o una sequenza di caratteri combinata. Unicode Standard definisce una coppia surrogata come rappresentazione di caratteri codificati per un singolo carattere astratto costituito da una sequenza di due unità di codice, dove la prima unità della coppia è un surrogato elevato e la seconda è un surrogato basso. Unicode Standard definisce una sequenza di caratteri combinata come combinazione di un carattere di base e uno o più caratteri di combinazione. Una coppia surrogata può rappresentare un carattere di base o un carattere di combinazione.

L'enumeratore di elementi di testo viene usato solo per leggere i dati nella stringa; non può modificare la stringa sottostante. L'enumeratore non ha accesso esclusivo alla stringa.

L'enumeratore è in uno stato non valido se viene posizionato prima del primo elemento di testo nella stringa o dopo l'ultimo elemento di testo nella stringa. Quando l'enumeratore si trova in uno stato non valido, la chiamata Current genera un'eccezione.

Inizialmente, l'enumeratore viene posizionato prima del primo elemento di testo nella stringa. Anche il metodo Reset riporta l'enumeratore in questa posizione. Pertanto, dopo aver creato o dopo Reset la chiamata di un enumeratore, MoveNext è necessario chiamare per avanzare l'enumeratore al primo elemento di testo della stringa prima di leggere il valore di Current.

Current restituisce lo stesso oggetto finché non viene chiamato il metodo MoveNext o Reset.

Dopo aver passato la fine della stringa, l'enumeratore viene nuovamente in uno stato non valido e la chiamata MoveNext restituisce false. La chiamata Current genera un'eccezione se l'ultima chiamata a MoveNext restituisce false.

Vedi anche

Si applica a

GetTextElementEnumerator(String, Int32)

Origine:
StringInfo.cs
Origine:
StringInfo.cs
Origine:
StringInfo.cs

Restituisce un enumeratore che consente di scorrere gli elementi di testo della stringa, a partire dall'indice specificato.

public static System.Globalization.TextElementEnumerator GetTextElementEnumerator (string str, int index);

Parametri

str
String

Stringa da scorrere.

index
Int32

Indice in base zero dal quale iniziare lo scorrimento.

Restituisce

Oggetto TextElementEnumerator per la stringa che parte da index.

Eccezioni

str è null.

index non è compreso nell'intervallo di indici validi per str.

Commenti

.NET definisce un elemento di testo come unità di testo visualizzato come singolo carattere, ovvero un grapheme. Un elemento di testo può essere un carattere di base, una coppia surrogata o una sequenza di caratteri combinata. Unicode Standard definisce una coppia surrogata come rappresentazione di caratteri codificati per un singolo carattere astratto costituito da una sequenza di due unità di codice, dove la prima unità della coppia è un surrogato elevato e la seconda è un surrogato basso. Unicode Standard definisce una sequenza di caratteri combinata come combinazione di un carattere di base e uno o più caratteri di combinazione. Una coppia surrogata può rappresentare un carattere di base o un carattere di combinazione.

L'enumeratore di elementi di testo viene usato solo per leggere i dati nella stringa; non può modificare la stringa sottostante. L'enumeratore non ha accesso esclusivo alla stringa.

L'enumeratore è in uno stato non valido se viene posizionato prima del primo elemento di testo nella stringa o dopo l'ultimo elemento di testo nella stringa. Quando l'enumeratore si trova in uno stato non valido, la chiamata Current genera un'eccezione.

Inizialmente, l'enumeratore viene posizionato prima del primo elemento di testo nella stringa. Anche il metodo Reset riporta l'enumeratore in questa posizione. Pertanto, dopo aver creato o dopo Reset la chiamata di un enumeratore, MoveNext è necessario chiamare per avanzare l'enumeratore al primo elemento di testo della stringa prima di leggere il valore di Current.

Current restituisce lo stesso oggetto finché non viene chiamato il metodo MoveNext o Reset.

Dopo aver passato la fine della stringa, l'enumeratore viene nuovamente in uno stato non valido e la chiamata MoveNext restituisce false. La chiamata Current genera un'eccezione se l'ultima chiamata a MoveNext restituisce false.

Vedi anche

Si applica a