我正在使用#
和myArrayList.Contains(myString)
检查arrayList是否包含提供的字符串并分别获取其索引。
但是,我如何检查是否包含子字符串?
myArrayList.IndexOf(myString)
所以,像Dim myArrayList as New ArrayList()
myArrayList.add("sub1;sub2")
myArrayList.add("sub3;sub4")
这样的东西应该返回True
答案 0 :(得分:2)
您可以使用ArrayList搜索带有
的子字符串Dim result = myArrayList.ToArray().Any(Function(x) x.ToString().Contains("sub3"))
当然,使用强类型List(Of String)的建议绝对正确。
答案 1 :(得分:1)
就你的问题而言,没有讨论为什么你需要ArrayList,因为数组列表只是为了向后兼容 - 选择包含特定字符串的项目的索引,你将获得最佳性能
Dim indexes As New List(Of Integer)(100)
For i As Integer = 0 to myArrayList.Count - 1
If DirectCast(myArrayList(i), String).Contains("sub3") Then
indexes.Add(i)
End If
Next
同样,这是你需要获取索引的。在您的情况下,ArrayList.Contains
- 您测试整个对象[在您的情况下为字符串]。虽然您需要获取字符串并使用String.Contains
如果您想以非区分大小写的方式进行测试,可以使用String.IndexOf