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

C#中波浪号(~)替换为双引号(")的异常问题求助

问题解决:波浪号替换为双引号的显示误解

首先明确:你的代码逻辑是正确的,你看到的"\"\"GENERATOR\"\""只是C#调试器的转义显示形式,并非字符串的真实内容。

核心原因

C#中双引号是字符串的界定符,调试器显示包含双引号的字符串时,会用\"来转义实际的双引号字符。比如真实内容是""Generator"",调试器会显示为"\"\"GENERATOR\"\""——外层双引号是调试器用来标识这是字符串,内部的\"对应真实的双引号字符。

代码笔误修复

你提供的两段代码都多了一个右括号,会导致编译错误,修正后的代码如下:

  1. Regex.Replace版本:
for (int i = 0; i < columnCount; i++)
{
    row[i] = Regex.Replace(row[i], "~", "\"");        
}
  1. String.Replace版本(更高效,无需正则):
for (int i = 0; i < columnCount; i++)
{
    row[i] = row[i].Replace("~", "\"");
}

验证真实内容的方法

若要确认字符串的真实值,可将其输出到控制台、写入文件或用Debug.WriteLine输出到调试窗口:

Console.WriteLine(row[i]);
// 输出结果就是:""Generator""

额外说明

String.Replace是处理固定字符串替换的最优选择,比Regex.Replace性能更高——正则表达式会带来额外的解析开销,此处完全不需要使用正则。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 03:34:50