You need to enable JavaScript to run this app. C#如何检测子串是否为双引号?CS0019报错怎么解决
优惠活动
大模型
产品
解决方案
定价
更多

C#如何检测子串是否为双引号?CS0019报错怎么解决

问题原因

  • 报错CS0019是因为Substring()方法返回值为string类型,无法直接和char类型变量做相等判断,二者类型不匹配。
  • 直接用string类型存储双引号报语法错误,是因为没有对字符串内的双引号做转义处理,编译器会将内容里的双引号识别为字符串的结束标记,导致引号首尾匹配失败。

可行解决方案

方案1(更推荐,性能更高)

直接通过字符串的索引器获取对应位置的char类型字符,不需要生成额外子串,直接和char类型的双引号做判断即可:

char quote = '"';
// 注意先判断字符串长度是否大于等于7,避免索引越界
if (yourString.Length > 6 && yourString[6] == quote)
{
    // 你的业务逻辑
}

方案2(兼容Substring的写法)

如果需要沿用Substring的逻辑,对字符串内的双引号做转义即可,C#普通字符串字面量中使用\作为转义符:

// 注意先判断字符串长度是否大于等于7,避免截取子串时报错
if (yourString.Length > 6 && yourString.Substring(6, 1) == "\"")
{
    // 你的业务逻辑
}

如果使用逐字字符串(@开头的字符串),则需要用两个双引号实现转义,对应写法为@""""。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.11 13:09:00