StringInfo Class
Provides functionality to split a string into text elements and to iterate through those text elements.
Namespace: System.Globalization
Assembly: mscorlib (in mscorlib.dll)
The StringInfo type exposes the following members.
| Name | Description | |
|---|---|---|
![]() ![]() ![]() | StringInfo | Initializes a new instance of the StringInfo class. |
![]() ![]() ![]() | StringInfo(String) | Initializes a new instance of the StringInfo class to a specified string. |
| Name | Description | |
|---|---|---|
![]() ![]() ![]() | LengthInTextElements | Gets the number of text elements in the current StringInfo object. |
![]() ![]() ![]() | String | Gets or sets the value of the current StringInfo object. |
| Name | Description | |
|---|---|---|
![]() ![]() ![]() | Equals | Indicates whether the current StringInfo object is equal to a specified object. (Overrides Object.Equals(Object).) |
![]() ![]() ![]() | Finalize | Allows an object to try to free resources and perform other cleanup operations before the Object is reclaimed by garbage collection. (Inherited from Object.) |
![]() ![]() ![]() | GetHashCode | Calculates a hash code for the value of the current StringInfo object. (Overrides Object.GetHashCode.) |
![]() ![]() ![]() ![]() | GetNextTextElement(String) | Gets the first text element in a specified string. |
![]() ![]() ![]() ![]() | GetNextTextElement(String, Int32) | Gets the text element at the specified index of the specified string. |
![]() ![]() ![]() ![]() | GetTextElementEnumerator(String) | Returns an enumerator that iterates through the text elements of the entire string. |
![]() ![]() ![]() ![]() | GetTextElementEnumerator(String, Int32) | Returns an enumerator that iterates through the text elements of the string, starting at the specified index. |
![]() ![]() ![]() | GetType | Gets the Type of the current instance. (Inherited from Object.) |
![]() ![]() ![]() | MemberwiseClone | Creates a shallow copy of the current Object. (Inherited from Object.) |
![]() ![]() ![]() ![]() | ParseCombiningCharacters | Returns the index of each base character, high surrogate, or control character within the specified string. |
![]() ![]() ![]() | ToString | Returns a string that represents the current object. (Inherited from Object.) |
The .NET Framework defines a text element as a unit of text that is displayed as a single character, that is, a grapheme. A text element can be a base character, a surrogate pair, or a combining character sequence. The Unicode Standard defines a surrogate pair as a coded character representation for a single abstract character that consists of a sequence of two code units, where the first unit of the pair is a high surrogate and the second is a low surrogate. The Unicode Standard defines a combining character sequence as a combination of a base character and one or more combining characters. A surrogate pair can represent a base character or a combining character.
For more information on surrogate pairs and combining character sequences, see The Unicode Standard at http://www.unicode.org.
This example shows how to use the GetTextElementEnumerator and ParseCombiningCharacters methods of the StringInfo class to manipulate a string that contains surrogate and combining characters.
Imports System.Globalization Imports System.Text Module Example Public Sub Demo(outputBlock As System.Windows.Controls.TextBlock) ' The string below contains combining characters. Dim chars() As Char = {"a"c, ChrW(&h0304), ChrW(&h0308), "b"c, "c"c, ChrW(&h0327)} Dim s As New String(chars) ' Show each 'character' in the string. EnumTextElements(outputBlock, s) ' Show the index in the string where each 'character' starts. EnumTextElementIndexes(outputBlock, s) End Sub ' Show how to enumerate each real character (honoring surrogates) in a string. Private Sub EnumTextElements(outputBlock As System.Windows.Controls.TextBlock, 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(), vbCrLf) Loop ' Show the results. outputBlock.Text &= "Result of GetTextElementEnumerator:" & vbCrLf outputBlock.Text &= sb.ToString() & vbCrLf End Sub ' Show how to discover the index of each real character (honoring surrogates) in a string. Private Sub EnumTextElementIndexes(outputBlock As System.Windows.Controls.TextBlock, 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 Integer = 0 To textElemIndex.Length - 1 sb.AppendFormat("Character {0} starts at index {1}{2}", _ i, textElemIndex(i), vbCrLf) Next ' Show the results. outputBlock.Text &= "Result of ParseCombiningCharacters:" & vbCrLf outputBlock.Text &= sb.ToString() & vbCrLf End Sub End Module ' This code produces the following output. ' ' Result of GetTextElementEnumerator: ' Character at index 0 is 'a-"' ' Character at index 3 is 'b' ' Character at index 4 is 'c,' ' ' Result of ParseCombiningCharacters: ' Character 0 starts at index 0 ' Character 1 starts at index 3 ' Character 2 starts at index 4
For a list of the operating systems and browsers that are supported by Silverlight, see Supported Operating Systems and Browsers.





