使用C#将所有引号设置为双引号

时间:2015-06-10 12:01:43

标签: c# double-quotes quote

我尝试让用户可以在CustomerName中搜索带引号的客户。

用户在customerNameTextBox中搜索设置为customerNameTB的用户。

如果用户使用引号('),它将替换为双引号。

如果有三重引号('''),它将被替换为双引号。

这是我的代码:

string customerNameTB = customerNameTextbox.Text;                
customerNameTB.Replace("'", "''");                
while (customerNameTB.Contains("'''"))
{
   customerNameTB.Replace("'''", "''");
}

此代码后的结果是引号仍是单引号。

这段代码有什么不对。

在回答后编辑

我的代码应如下所示:

 string customerNameTB = customerNameTextbox.Text;                
    customerNameTB = customerNameTB.Replace("'", "''");                
    while (customerNameTB.Contains("'''"))
    {
       customerNameTB = customerNameTB.Replace("'''", "''");
    }

2 个答案:

答案 0 :(得分:5)

你关闭了!这就是你需要的:

string customerNameTB = customerNameTextbox.Text;  
// single quotes
customerNameTB = customerNameTB.Replace("'", "''");
// triple quotes
customerNameTB = customerNameTB.Replace("'''", "''");

替换不会在原始字符串中替换它,它会返回一个新的字符串,您必须将其分配给某个东西,否则它就会被丢弃。

答案 1 :(得分:1)

String.Replace不会修改它运行的字符串。 您需要将Replace的结果分配给您的字符串:

:inoremap <silent> <C-w> <C-\><C-O>d<C-Left>

此外,不需要循环,因为Replace会替换所有出现的搜索字符串。