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

VB.NET中String.Contains调用相等比较器的正确语法

VB.NET中String.Contains使用忽略大小写比较的正确方法

核心问题原因

早期.NET Framework版本的String.Contains方法没有直接支持StringComparison枚举的重载,这就是你传入StringComparison.OrdinalIgnoreCase时IDE报错的原因;而EndsWith/StartsWith天生带有该重载,所以可以正常使用。另外,你尝试的comparer:=StringComparer.InvariantCultureIgnoreCase会运行报错,是因为Contains从未提供接受IEqualityComparer(Of String)类型参数的重载,参数类型不匹配导致异常。

两种可行解决方案

  • 方案1:兼容所有.NET版本(推荐旧项目使用)
    借助String.IndexOf方法结合StringComparison枚举判断,返回值≥0即表示包含目标字符串:

    Dim sourceStr As String = "Test String"
    Dim targetStr As String = "test"
    
    If sourceStr.IndexOf(targetStr, StringComparison.OrdinalIgnoreCase) >= 0 Then
        ' 执行包含匹配后的逻辑
    End If
    
  • 方案2:适用于.NET Core 2.0+、.NET 5+、.NET Framework 4.8+
    高版本框架中String.Contains新增了带StringComparison的重载,VB.NET中需指定参数名为comparisonType::

    Dim sourceStr As String = "Test String"
    Dim targetStr As String = "test"
    
    If sourceStr.Contains(targetStr, comparisonType:=StringComparison.OrdinalIgnoreCase) Then
        ' 执行包含匹配后的逻辑
    End If
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 21:42:40