«Привет» - это второй токен, а не первый. Кроме того, параметром должен быть разделитель и индекс, а не сам метод.
Таким образом, вы могли бы использовать этот метод:
Public Shared Function SplitByGetAt(input As String, delimiter As String, index As Int32, options As StringSplitOptions) As String
If input Is Nothing Then Throw New ArgumentNullException("input")
If delimiter Is Nothing Then Throw New ArgumentNullException("delimiter")
If delimiter.Length = 0 Then Throw New ArgumentException("Delimiter must be specified", "delimiter")
If index < 0 Then Throw New ArgumentException("Index must be equal or greater than 0", "index")
Dim tokens = input.Split({delimiter}, options)
If index >= tokens.Length Then Return Nothing
Return tokens(index)
End Function
Использование:
Dim lstrSource as String = "Hello-Hi"
Dim result As String = SplitByGetAt(lstrSource, "-", 1, StringSplitOptions.None)
' Result: Hi
Если вы хотите, чтобы сделать его метод расширения:
Public Module MyExtensions
<Extension()>
Public Function SplitByGetAt(input As String, delimiter As String, index As Int32, options As StringSplitOptions) As String
If input Is Nothing Then Throw New ArgumentNullException("input")
If delimiter Is Nothing Then Throw New ArgumentNullException("delimiter")
If delimiter.Length = 0 Then Throw New ArgumentException("Delimiter must be specified", "delimiter")
If index < 0 Then Throw New ArgumentException("Index must be greater than 0", "index")
Dim tokens = input.Split({delimiter}, options)
If index >= tokens.Length Then Return Nothing
Return tokens(index)
End Function
End Module
Теперь вы можете использовать его в таким образом:
lstrSource.SplitByGetAt("-", 1, StringSplitOptions.None)
'lstrSource.Split (" - ") (0)' будет возвращать 'Hello' ** not **' Hi'. –
Разделитель и индекс массива уже являются переменными. Вам просто нужно сохранить их оба. –