VisualBasic-Version
Code, um einen Teilstring zu finden, der, wenn er gefunden wird, den hinteren Teil zurückgibt - den Rest der Zeichenkette unmittelbar hinter dem gefundenen Teilstring (hinter dem Ende).
jp2code Die Antwort hat mir auf elegante Art und Weise geholfen. Neben den Beispielen wies der Autor auch darauf hin, dass der Code im Laufe der Zeit gut erprobt und getestet wurde. VisualBasic Äquivalent seines/ihres Codes:
Imports System.Runtime.CompilerServices
Module StringExtensions
<Extension()>
Public Function TextFollowing(txt As String, value As String) As String
If Not String.IsNullOrEmpty(txt) AndAlso Not String.IsNullOrEmpty(value) Then
Dim index As Integer = txt.IndexOf(value)
If -1 < index Then
Dim start As Integer = index + value.Length
If start <= txt.Length Then
Return txt.Substring(start)
End If
End If
End If
Return Nothing
End Function
End Module
Der Code wurde getestet mit VS Gemeinschaft 2017 .
Beispiel für die Verwendung
Dim exampleText As String = "C-sharp to VisualBasic"
Dim afterCSharp = exampleText.TextFollowing("to")
'afterCSharp = " VisualBasic"
Die Erweiterungsmethode TextFollowing()
ist jetzt verfügbar für String
Objekte.
- Zeile 1:
exampleText
es String
und daher ist unsere Erweiterungsmethode verfügbar
- Zeile 2:
exampleText.TextFollowing()
verwendet die Erweiterungsmethode
Ergänzende Methode
Es kann nützlich sein, die ergänzende Methode zu haben - den vorangehenden Teil der Zeichenkette zu erhalten. Die komplementären Erweiterungsmethoden werden geschrieben und in einem kombinierten Codemodul zusammengefasst:
Imports System.Runtime.CompilerServices
Module StringExtensions
<Extension()>
Public Function TextFollowing(txt As String, value As String) As String
If Not String.IsNullOrEmpty(txt) AndAlso Not String.IsNullOrEmpty(value) Then
Dim index As Integer = txt.IndexOf(value)
If -1 < index Then
Dim start As Integer = index + value.Length
If start <= txt.Length Then
Return txt.Substring(start)
End If
End If
End If
Return Nothing
End Function
<Extension()>
Public Function TextPreceding(txt As String, value As String) As String
If Not String.IsNullOrEmpty(txt) AndAlso Not String.IsNullOrEmpty(value) Then
Dim index As Integer = txt.IndexOf(value)
If -1 < index Then
Return txt.Substring(0, index)
End If
End If
Return Nothing
End Function
End Module
Beispiel für die Verwendung
Dim exampleText As String = "C-sharp to VisualBasic"
Dim beforeVisualBasic = exampleText.TextPreceding("to")
'beforeVisualBasic = "C-sharp "
In meinem Anwendungsfall ist es notwendig zu prüfen, ob LargeString.Contains(SmallString)
bevor Sie diese Erweiterungsmethoden anwenden. Für eine schnellere Codeausführung hätte man dies mit den oben vorgestellten Erweiterungsmethoden kombinieren können, was ich aber nicht getan habe. Der Grund dafür ist, dass keine Verlangsamung auftritt und daher die Wiederverwendbarkeit des Codes im Vordergrund steht.