繁体   English   中英

C#替换列表中的项目 <string> “ /”

[英]C# replace item in list<string> “/”

我想\\需要用列表中的另一个字符更改特定字符

我想用“ \\ P \\;”更改“ A”

这就是我所做的

for (int i = 0; i < msg.Count; i++)
{
    msg[i] = msg[i].Replace("A", "\P\;");
}

但我收到此错误:“无法识别的转义序列”


问题在于它之后不会将其更改为十六进制。

所以这是我想做的:

List<string> changeOne = new List<string>
for (int i=0;i<msg.Count();i++)
{
if msg[i] == "A" 
{
changeOne[i] = "\";
change[One[i+1] = "p";
}
i++;
}

我可以做这样的事情吗? 如何使其工作? 因为我认为我会有问题

假设味精清单是这样的:

0-D
1-A
2-S
3-1

我希望changeOne清单像这样

0-D
1-\
2-p
3-\
4-;
5-S
6-1

谢谢 ,

尝试使用verbatim string literal -字符串中通常被解释为转义序列的任何内容都将被忽略。

例如: C:\\\\Users\\\\Rich@"C:\\Users\\Rich"

例子

在您的情况下:

msg[i] = msg[i].Replace("A", @"\P\;");

如果您不希望在C#中转义文字值,则可以使用Verbatim String标记。

在这种情况下,请替换"\\P\\;" @"\\P\\;" 这比字符串中包含多个转义符更容易理解。

主要问题是您的问题不太清楚。 您要用4个字符串替换一个字符串。

1-A

变成

1-\
2-p
3-\
4-;

在您的示例中。

List<string> changeOne = new List<string>
for (int i=0;i<msg.Count();i++)
{
   if (msg[i] == "A")
   {
     changeOne.AddRange( new [] {"\\","p","\\",";" });
   }
   else
   {
          changeOne.Add(msg[i]);
   }
}

反斜杠(“ \\”)字符是特殊的转义字符,您需要使用两个反斜杠或使用@ verbatim字符串。

for (int i = 0; i < msg.Count; i++)
        {
            msg[i] = msg[i].Replace("A", "\\P\\;");
            //or
            msg[i] = msg[i].Replace("A", @"\P\;");
        }

您可以参考以下链接: 转义序列

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM