Für den folgenden Code-Block:Prüfen, ob eine Zeichenkette, ein Element aus einer Liste enthält (von Strings)
For I = 0 To listOfStrings.Count - 1
If myString.Contains(lstOfStrings.Item(I)) Then
Return True
End If
Next
Return False
Der Ausgang ist:
Fall 1:
myString: C:\Files\myfile.doc
listOfString: C:\Files\, C:\Files2\
Result: True
Fall 2:
myString: C:\Files3\myfile.doc
listOfString: C:\Files\, C:\Files2\
Result: False
Die Liste (listOfStrings) kann mehrere Elemente (mindestens 20) enthalten und muss gegen Tausende von Strings (wie myString) geprüft werden.
Gibt es eine bessere (effizientere) Möglichkeit, diesen Code zu schreiben?
Statt Enthält sollte ich Starts basierend auf seinen Beispielen verwenden würde. – tvanfosson
@tvanfosson - das hängt davon ab, ob die Beispiele vollständig inklusive sind, aber ja, dem würde ich zustimmen. Einfach zu ändern, natürlich. –
In wie weit ist dieser Code auf algorithmischer Ebene effizienter? Es ist kürzer und schneller, wenn die Schleifen in "Any" schneller sind, aber das Problem, dass Sie viele Male exakt übereinstimmen müssen, ist dasselbe. –