如何检查列表中字符串的出现(字符串)
How to check for occurence of string within a list(of String)
我有这个代码:
Dim listCities As New List(Of String)
listCities.add("this is city London")
listCities.add("this city is called New York")
listCities.add("and another string with a city, this one Berlin")
当我尝试时:
listCities.Contains("London")
是returnsfalse
,可能是因为没有完全匹配。
如何测试 listCities
是否包含一个字符串,当它是列表中某个字符串的子字符串时?
显然我不想循环遍历 listCities
中的所有项目
你可以这样使用IEnumerable.Any
if listCities.Any(Function(x) x.IndexOf("London") > -1)) Then
.. true ...
如果你在不同的情况下拼写了伦敦,你可以使用带有 StringComparison.CurrentCultureIgnoreCase
参数的 IndexOf 版本
你应该可以用这个实现它:
listCities.Any(Function(x As String) x.Contains("London"));
这就是我的想法,它允许轻松重用以及易于理解的长期代码格式。
Public Sub Test()
Dim l As New List(Of String)
' USAGE EXAMPLE
Dim index As Integer = l.IndexOfContainsText("london")
End Sub
<Extension()>
Public Function IndexOfContainsText(list As List(Of String), ContainsText As String) As Integer
Dim out As Integer = -1
For iQ As Integer = 0 To list.Count - 1
If list(iQ).Contains(ContainsText, StringComparison.InvariantCultureIgnoreCase) Then
Return iQ
End If
Next
Return out
End Function
如果 listCities 是一个列表,Contains 会将列表中的对象与您指定的对象(在本例中为字符串)进行比较。如果您直接在 String 对象中使用 Contains,它将在 string 对象中查找特定的字符串。
因此,您需要做的是遍历列表并使用 Contains,使用 Any returns 布尔值:
listCities.Any(Function(cet) cet.Contains("London"))
这样看可能更容易
For Each city In From city1 In listCities Where city1.Contains("London")
valueToReturn = True
Exit For
Next
我有这个代码:
Dim listCities As New List(Of String)
listCities.add("this is city London")
listCities.add("this city is called New York")
listCities.add("and another string with a city, this one Berlin")
当我尝试时:
listCities.Contains("London")
是returnsfalse
,可能是因为没有完全匹配。
如何测试 listCities
是否包含一个字符串,当它是列表中某个字符串的子字符串时?
显然我不想循环遍历 listCities
你可以这样使用IEnumerable.Any
if listCities.Any(Function(x) x.IndexOf("London") > -1)) Then
.. true ...
如果你在不同的情况下拼写了伦敦,你可以使用带有 StringComparison.CurrentCultureIgnoreCase
参数的 IndexOf 版本
你应该可以用这个实现它:
listCities.Any(Function(x As String) x.Contains("London"));
这就是我的想法,它允许轻松重用以及易于理解的长期代码格式。
Public Sub Test()
Dim l As New List(Of String)
' USAGE EXAMPLE
Dim index As Integer = l.IndexOfContainsText("london")
End Sub
<Extension()>
Public Function IndexOfContainsText(list As List(Of String), ContainsText As String) As Integer
Dim out As Integer = -1
For iQ As Integer = 0 To list.Count - 1
If list(iQ).Contains(ContainsText, StringComparison.InvariantCultureIgnoreCase) Then
Return iQ
End If
Next
Return out
End Function
如果 listCities 是一个列表,Contains 会将列表中的对象与您指定的对象(在本例中为字符串)进行比较。如果您直接在 String 对象中使用 Contains,它将在 string 对象中查找特定的字符串。
因此,您需要做的是遍历列表并使用 Contains,使用 Any returns 布尔值:
listCities.Any(Function(cet) cet.Contains("London"))
这样看可能更容易
For Each city In From city1 In listCities Where city1.Contains("London")
valueToReturn = True
Exit For
Next