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

如何移除C#字符串中的转义字符\?已尝试Replace方法

解决C#字符串转义符移除问题

嘿,我来帮你搞清楚这个问题~

首先得明确一个关键:你写的这段代码里的\"是C#的编译时转义标记,它只是告诉编译器「这个双引号是字符串内容的一部分,不是字符串的结束符号」,当程序运行起来后,这个字符串实际存储的内容是:

SELECT dbo.GetDefaultType("PartnerType") AS default_answer;

也就是说,实际字符串里根本不存在反斜杠\——这就是你用Replace(@"\", "")没效果的核心原因!

接下来分两种场景给你解决方案:

场景1:字符串是直接写在代码里的字面量

如果是像你现在这样直接在代码里定义字符串,想要去掉代码里的转义符(让代码更易读),可以用两种方式:

  • 用逐字字符串(加@前缀),此时不需要用\转义双引号,而是用两个连续的双引号表示内容里的一个双引号:
    string value = @"SELECT dbo.GetDefaultType(""PartnerType"") AS default_answer;";
    
  • 或者保持普通字符串的写法,但要知道你原来的\"写法本身就是正确的,运行时字符串里不会有\,只是代码里看起来有转义符而已。

场景2:字符串是运行时动态获取的(比如文件、输入、API返回)

如果这个字符串是从外部获取的,实际内容里真的包含\(比如内容是SELECT dbo.GetDefaultType(\"PartnerType\") AS default_answer;),那你的Replace方法是有效的,但要注意C#字符串是不可变类型,Replace不会修改原字符串,必须把返回的新字符串重新赋值给变量:

// 两种写法都可以
value = value.Replace(@"\", string.Empty);
// 或者
value = value.Replace("\\", "");

这样就能真正移除字符串里的\啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 06:49:34