替换尺寸字符串中的值[]

时间:2018-09-19 09:28:09

标签: c# multidimensional-array replace

如何替换维度中的“值”? 我的字符串尺寸如下:

string[] map = new string[]
            {
                "+--------------------------------------------------------------------------+", 
                "|{0}X2X3X4X5X6X7X8X9X10                                  B                 |",
                "|A X                                                                       |",
                "|XXX      XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXX                    |",
                "|XXX                                                                       |",
                "|XXXXXXXXXXXXXXXXXX  XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX|",
                "|XXX                 X                                                     |",
                "|XXX              XXXX                                                     |",
                "|    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX|",
                "|                                                                          |",
                "|                                                                          |",
                "+--------------------------------------------------------------------------+",
            };

我只需要将{0}替换为“ C”

我尝试 map.Replace,但是在这一点上如何替换值不起作用?

替换后,它应该像:

string[] map = new string[]
                {
                    "+--------------------------------------------------------------------------+", 
                    "|CX2X3X4X5X6X7X8X9X10                                   B                 |",
                    "|A X                                                                       |",
                    "|XXX      XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXX                    |",
                    "|XXX                                                                       |",
                    "|XXXXXXXXXXXXXXXXXX  XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX|",
                    "|XXX                 X                                                     |",
                    "|XXX              XXXX                                                     |",
                    "|    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX|",
                    "|                                                                          |",
                    "|                                                                          |",
                    "+--------------------------------------------------------------------------+",
                };

在普通字符串中,使用以下方法很容易:

string xml = @"<?xml version=""1.0"" encoding=""utf-8""?>
               <productOrderNumber>{0}</productOrderNumber>";
var NewXML = String.Format(xml, "HI");

我如何用string []做同样的事情?请在我的示例中进行解释。

2 个答案:

答案 0 :(得分:1)

String.Format()用于字符串,在您的情况下,它是string []。所以它不像您期望的那样工作

要“格式化”字符串,必须对每个字符串执行操作,方法是Select,紧随其后

map = map.Select(x => string.Format(x, "C")).ToArray();

如果您只想更新问题的第二行

尝试

map[1] = string.Format(map[1] , "C");

答案 1 :(得分:0)

您不能直接在字符串数组上使用“替换”,而必须选择单个项目然后使用“替换”。

map = map.Select(x => x.Replace("{0}", "C")).ToArray();