检查字符串是否包含列表中的元素(字符串)
对于以下代码块:
For I = 0 To listOfStrings.Count - 1 If myString.Contains(lstOfStrings.Item(I)) Then
Return True
End If
Next
Return False
输出为:
myString: C:\Files\myfile.doclistOfString: C:\Files\, C:\Files2\
Result: True
myString: C:\Files3\myfile.doclistOfString: C:\Files\, C:\Files2\
Result: False
该列表(listOfStrings)可能包含多个项目(最少20个),并且必须对照数千个字符串(例如myString)进行检查。
有没有更好(更有效)的方式来编写此代码?
回答:
使用LINQ并使用C#(这些天我对VB不太了解):
bool b = listOfStrings.Any(s=>myString.Contains(s));
或(更简短,更有效,但可以说不够清晰):
bool b = listOfStrings.Any(myString.Contains);
如果您正在测试相等性,那值得一看,HashSet
等等,但这对部分匹配没有帮助,除非您将其拆分为多个片段并添加一个复杂性顺序。
更新:如果您的意思是“ StartsWith”,则可以对列表进行排序并将其放入数组中;然后使用Array.BinarySearch
查找每个项目-
通过查找检查它是完全匹配还是部分匹配。
以上是 检查字符串是否包含列表中的元素(字符串) 的全部内容, 来源链接: utcz.com/qa/424448.html