如何移除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
相关产品推荐
相关产品推荐

