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

VB.NET中如何在字符串列表中查找子字符串?

VB.NET 列表中查找包含子字符串的元素问题解析

问题原因

List(Of String).Contains方法的逻辑是精确匹配整个列表元素,它会检查列表中是否存在与传入参数完全相等的字符串。你的列表元素是"book1"、"book2"、"book3",没有任何一个元素和"book"完全一致,所以第二个判断分支会执行。

而单个字符串的Contains方法是检查当前字符串内部是否包含指定子串,所以第一个判断能正确命中。

无需显式遍历的解决方案

可以借助LINQ的Any方法来实现需求,代码上不用手动写循环,底层会高效处理遍历逻辑:

方法1:结合字符串的Contains

Imports System.Linq ' 若项目未默认导入,需添加此引用

Sub Main(args As String())
    Dim StringList As New List(Of String) From {"book1", "book2", "book3"}

    ' 检查列表中是否存在包含"book"的元素
    If StringList.Any(Function(s) s.Contains("book")) Then
        Console.WriteLine("This works!")
    Else
        Console.WriteLine("This doesn't work!")
    End If
    Console.ReadLine()
End Sub

方法2:使用通配符(Like操作符)

如果你习惯用通配符,也可以用Like配合Any:

If StringList.Any(Function(s) s Like "*book*") Then
    Console.WriteLine("This works!")
Else
    Console.WriteLine("This doesn't work!")
End If

补充说明

LINQ的Any方法会在找到第一个符合条件的元素后立即停止遍历,性能上和手动写循环提前跳出是一致的,属于高效的解决方案。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 21:14:58