С помощью LINQ легко:
Dim zeros = selected.ToString().TakeWhile(Function(c) c = "0"c)
Dim zeroString = New String(zeros.ToArray())
Другой подход, который приходит на ум:
dim countZeros = selected.Length - selected.TrimStart("0"c).Length
zeroString = New string("0"c, countZeros)
Тревор сказал, что это хороший кандидат для расширения, здесь оптимизированная версия :
Public Module StringExtensions
<System.Runtime.CompilerServices.Extension> _
Public Function TrimStartGetTrimmed(str As String, ParamArray charsToTrim As Char()) As String
If str Is Nothing Then
Throw New ArgumentNullException(NameOf(str))
End If
Dim whiteSpaceCheck As Boolean = charsToTrim Is Nothing OrElse charsToTrim.Length = 0
Dim firstNonTrimCharIndex As Integer = 0
For Each current As Char In str
Dim isTrimChar As Boolean = If(whiteSpaceCheck, Char.IsWhiteSpace(current), charsToTrim.Contains(current))
If Not isTrimChar Then
Return str.Substring(0, firstNonTrimCharIndex)
End If
firstNonTrimCharIndex += 1
Next
Return str
End Function
<System.Runtime.CompilerServices.Extension> _
Public Function TrimEndGetTrimmed(str As String, ParamArray charsToTrim As Char()) As String
If str Is Nothing Then
Throw New ArgumentNullException(NameOf(str))
End If
Dim whiteSpaceCheck As Boolean = charsToTrim Is Nothing OrElse charsToTrim.Length = 0
For index = str.Length - 1 To 0 Step -1
Dim current As Char = str(index)
Dim isTrimChar As Boolean = If(whiteSpaceCheck, Char.IsWhiteSpace(current), charsToTrim.Contains(current))
If Not isTrimChar Then
Return str.Substring(index + 1)
End If
Next
Return str
End Function
End Module
Здесь же для C#:
public static class StringExtensions
{
public static string TrimStartGetTrimmed(this string str, params char[] charsToTrim)
{
if (str == null) throw new ArgumentNullException(nameof(str));
bool whiteSpaceCheck = charsToTrim == null || charsToTrim.Length == 0;
for (var index = 0; index < str.Length; index++)
{
char current = str[index];
bool isTrimChar = whiteSpaceCheck ? char.IsWhiteSpace(current) : charsToTrim.Contains(current);
if (!isTrimChar)
return str.Substring(0, index);
}
return str;
}
public static string TrimEndGetTrimmed(this string str, params char[] charsToTrim)
{
if (str == null) throw new ArgumentNullException(nameof(str));
bool whiteSpaceCheck = charsToTrim == null || charsToTrim.Length == 0;
for (var index = str.Length - 1; index >= 0; index--)
{
char current = str[index];
bool isTrimChar = whiteSpaceCheck ? char.IsWhiteSpace(current) : charsToTrim.Contains(current);
if (!isTrimChar)
return str.Substring(index + 1);
}
return str;
}
}
Что означает _selected_, выбранный где? Что вы пробовали? –