gpt4 book ai didi

vb.net - 如何在VB.NET中搜索数组?

转载 作者:行者123 更新时间:2023-12-04 04:54:34 25 4
gpt4 key购买 nike

我希望能够有效地在数组中搜索字符串的内容。
例子:

dim arr() as string={"ravi","Kumar","Ravi","Ramesh"}

我传递的值是“ra”,我希望它返回2和3的索引。

如何在VB.NET中执行此操作?

最佳答案

还不清楚您要如何搜索数组。以下是一些替代方案:

查找所有包含精确字符串“Ra”的项目(返回项目2和3):

Dim result As String() = Array.FindAll(arr, Function(s) s.Contains("Ra"))

查找所有以精确字符串“Ra”开头的项目(返回项目2和3):
Dim result As String() = Array.FindAll(arr, Function(s) s.StartsWith("Ra"))

查找所有包含任何大小写形式的“ra”的项目(返回项目0、2和3):
Dim result As String() = Array.FindAll(arr, Function(s) s.ToLower().Contains("ra"))

查找所有以“ra”为例的版本开头的所有项(取消项0、2和3):
Dim result As String() = Array.FindAll(arr, Function(s) s.ToLower().StartsWith("ra"))

--

如果您不使用VB 9+,则没有匿名函数,因此必须创建一个命名函数。

例子:
Function ContainsRa(s As String) As Boolean
Return s.Contains("Ra")
End Function

用法:
Dim result As String() = Array.FindAll(arr, ContainsRa)

拥有只能与特定字符串进行比较的函数并不总是很有用,因此要能够指定要与之进行比较的字符串,就必须将其放入一个类中,以在某个地方存储该字符串:
Public Class ArrayComparer

Private _compareTo As String

Public Sub New(compareTo As String)
_compareTo = compareTo
End Sub

Function Contains(s As String) As Boolean
Return s.Contains(_compareTo)
End Function

Function StartsWith(s As String) As Boolean
Return s.StartsWith(_compareTo)
End Function

End Class

用法:
Dim result As String() = Array.FindAll(arr, New ArrayComparer("Ra").Contains)

关于vb.net - 如何在VB.NET中搜索数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/697270/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com