You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何获取字符串中与List(Of String)匹配的对应条目?

解决VB.NET中查找字符串包含的列表条目问题

首先得纠正你代码里的一个小错误:List(Of String)的Add方法只能接受单个String参数,不能像你写的那样传两个值。如果要添加变量名对应的字符串,直接把变量传进去就行——比如你定义了somefancystringname这个字符串变量,直接strList.Add(somefancystringname)就可以,再单独添加字面量"Fancy"。

接下来咱们实现你要的核心功能:检查str是否包含strList中的某个条目,找到的话返回该条目用于条件判断。用LINQ来实现会非常简洁。

完整代码示例

1. 正确初始化列表(包含变量和字面量)

' 先定义你要用到的字符串变量
Dim somefancystringname As String = "Fancy"
Dim strList As New List(Of String)
Dim str As String = "SomeFancyStringThere"

' 给列表添加条目:变量和字面量都支持
strList.Add(somefancystringname)
strList.Add("String")
strList.Add("Other")

2. 查找第一个匹配的条目

' 遍历列表,找到第一个被str包含的条目,没找到返回Nothing
Dim matchingItem As String = strList.FirstOrDefault(Function(item) str.Contains(item))

' 用IF语句判断并使用结果
If matchingItem IsNot Nothing Then
    ' 找到匹配项,执行你的业务逻辑
    Console.WriteLine($"匹配到的条目:{matchingItem}")
    ' 比如可以在这里做分支处理
Else
    ' 没有匹配项的情况
    Console.WriteLine("未找到任何匹配的条目")
End If

3. (可选)查找所有匹配的条目

如果需要找到str包含的所有列表条目,而不只是第一个,可以用Where方法:

Dim allMatches As IEnumerable(Of String) = strList.Where(Function(item) str.Contains(item))

' 遍历所有匹配结果
For Each item In allMatches
    Console.WriteLine($"匹配条目:{item}")
Next

关键说明

  • FirstOrDefault:这是LINQ方法,会遍历列表返回第一个满足条件的元素;如果没有任何元素满足条件,会返回Nothing(适合做空判断)。如果你确定列表中一定有匹配项,可以用First,但没找到时会抛出异常,所以更推荐用FirstOrDefault。
  • Lambda表达式:Function(item) str.Contains(item)是用来判断当前列表项是否被目标字符串str包含,要是需要区分大小写的话,可以改成str.Contains(item, StringComparison.OrdinalIgnoreCase)。
  • 变量添加到列表:完全支持把字符串变量直接添加到List(Of String)中,只要变量是String类型就没问题。

内容的提问来源于stack exchange,提问作者DDev

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 04:10:28