C#forwardonly string.replace

C#forwardonly string.replace,c#,string,C#,String,我必须用一个双引号替换两个双引号 但我只希望它是向前的,所以如果有4个双引号,我希望有2个双引号返回 string.replace()只返回1个双引号,因为它从第0个索引开始再次搜索2个双引号 有什么建议吗?我没有抓住要点吗?我问的原因很简单 string s = "\"\"Test.\"\""; string t = s.Replace("\"\"", "\""); Console.WriteLine("Before: " + s); Console.WriteLine("After: " +

我必须用一个双引号替换两个双引号

但我只希望它是向前的,所以如果有4个双引号,我希望有2个双引号返回

string.replace()只返回1个双引号,因为它从第0个索引开始再次搜索2个双引号


有什么建议吗?

我没有抓住要点吗?我问的原因很简单

string s = "\"\"Test.\"\"";
string t = s.Replace("\"\"", "\"");
Console.WriteLine("Before: " + s);
Console.WriteLine("After: " + t);
刚输出

Before: ""Test.""
After: "Test."
Before: """"
After: ""

刚输出

Before: ""Test.""
After: "Test."
Before: """"
After: ""

在我的控制台上。请向我们展示您已经拥有的内容、它正在生成的输出以及您想要的输出,因为当我阅读您的问题时,上面的内容满足了您的要求。

您的陈述似乎不正确,一个由四个双引号组成的字符串将两个双引号替换为一个双引号,结果是一个由两个双引号组成的字符串:

Console.WriteLine("\"\"\"\"".Replace("\"\"", "\""));
产生

""

实际上,在性能方面,
Replace
重新开始搜索索引0处的匹配项是没有意义的。当找到并替换第一个匹配项时,我们知道前一个子字符串中没有匹配项。

给了您+1,因为Jason的原始答案没有在一行中包含四个引号。:)@Sapph-谢谢,我想我会在这方面打败他,他笨手笨脚地做了
“测试。”
和所有:)谢谢Jason。我想我没想清楚。除了replace()之外,我还使用了Trim(),这破坏了我的最终输出。你的回答帮助我认识到了错误。再次感谢!