当前位置:  开发笔记 > 后端 > 正文

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

如何解决《如何在VB.NET中搜索数组?》经验,为你挑选了1个好方法。

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

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

我传递的值是"ra",我希望它返回索引2和3.

我怎么能在VB.NET中做到这一点?



1> Guffa..:

目前还不清楚你想要如何搜索数组.以下是一些替代方案:

查找包含确切字符串"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"的任何案例版本开头的所有项目(retuns items 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)

推荐阅读
家具销售_903
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有