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

VB.NET中如何判断字符串是否包含List(Of String)的任意元素

问题原因

你对String.Contains方法的参数理解有误:该方法原生只支持检查单个子字符串是否存在于目标字符串中,没有接收字符串列表做批量匹配的重载,所以你直接把列表n传入的写法是不成立的。
String.Contains的可选第二个参数是StringComparison枚举,用来指定匹配规则(比如是否忽略大小写、是否按区域规则比较),不是用来传匹配集合的。

解决方案

写法1:LINQ 简洁写法(推荐)

首先在代码文件顶部导入LINQ命名空间:

Imports System.Linq

直接用Any方法判断列表中是否存在任意一个元素是目标字符串的子串即可:

' 区分大小写匹配
If n.Any(Function(keyword) sAuthor.Contains(keyword)) Then
    ' 匹配成功后的业务逻辑,示例中sAuthor包含"Poe"会命中
End If

如果需要忽略大小写匹配,就给Contains传入第二个比较规则参数:

' 忽略大小写匹配
If n.Any(Function(keyword) sAuthor.Contains(keyword, StringComparison.OrdinalIgnoreCase)) Then
    ' 匹配成功逻辑
End If

写法2:传统循环写法(无需LINQ,兼容极老版本.NET)

如果你的环境不支持LINQ,可以直接遍历列表做判断,找到第一个匹配项就可以终止循环提升效率:

Dim hasMatch As Boolean = False
For Each keyword In n
    If sAuthor.Contains(keyword) Then
        hasMatch = True
        Exit For
    End If
Next

If hasMatch Then
    ' 匹配成功后的业务逻辑
End If

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 09:54:27