14 lines
503 B
Plaintext
14 lines
503 B
Plaintext
Module GraphemeLength
|
|
' Wraps an IEnumerator, allowing it to be used as an IEnumerable.
|
|
Private Iterator Function AsEnumerable(enumerator As IEnumerator) As IEnumerable
|
|
Do While enumerator.MoveNext()
|
|
Yield enumerator.Current
|
|
Loop
|
|
End Function
|
|
|
|
Function GraphemeCount(s As String) As Integer
|
|
Dim elements = Globalization.StringInfo.GetTextElementEnumerator(s)
|
|
Return AsEnumerable(elements).OfType(Of String).Count()
|
|
End Function
|
|
End Module
|