Другой способ сделать это - использовать Enumerable.Range
. Вот одна строка:
Enumerable.Range(AscW("A"c), AscW("Z"c) - AscW("A"c) + 1).Select(Function(i) ChrW(i))
Вы можете поместить его в функцию, подобную этой:
Public Function CharRange(first As Char, last As Char) As IEnumerable(Of Char)
Return Enumerable.Range(AscW(first), AscW(last) - AscW(first) + 1).Select(Function(i) ChrW(i))
End Function
Для версии Unicode вам нужно использовать целые числа вместо символов:
Public Function CharRange(first As Integer, last As Integer) As IEnumerable(Of Char)
Return Enumerable.Range(first, last - first + 1).Select(Function(i) ChrW(i))
End Function
Кроме того, теперь, когда у нас есть Целочисленная версия , вы можете заменить первую функцию этой более короткой версией:
Public Function CharRange(first As Char, last As Char) As IEnumerable(Of Char)
Return CharRange(AscW(first), AscW(last))
End Function
Пример использования:
'Dim combined As String = String.Join("", CharRange("A"c, "Z"c))
Dim combined As String = String.Join("", CharRange(&H41, &H5A))
Console.WriteLine(combined)
Выход:
АБВГДЕЖЗИКЛМНОПРСТУФХЧШЭЮЯ