【问题标题】:Replace value in dimension string[] [duplicate]替换维度字符串中的值 [] [重复]
【发布时间】:2018-09-19 09:28:08
【问题描述】:

如何替换维度中的值? 我的字符串维度看起来像:

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[] 做同样的事情?请用我的例子解释一下。

【问题讨论】:

  • 那不叫“维度”,是“数组”。查看副本。
  • 你说得对,谢谢。

标签: c# multidimensional-array replace


【解决方案1】:

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

要“格式化”你的字符串,你必须对每个字符串执行你的操作,Select 关注

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

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

试试

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

【讨论】:

  • 是的,完美!谢谢
【解决方案2】:

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

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

【讨论】:

  • You answear 更好并且效果很好,但是当我想替换单线图[1] 时呢?如何仅替换第 1 行中的字符?
  • 您可以对单个字符以及整行使用相同的 Select。只需使用您的字符而不是 {0}。你试过吗?有什么错误吗?
  • 我试过了,但您的示例替换了整个数组中的 {0}。当我在另一行中有 {0} 和 {0} 时,两者都将被 C 替换。您可以编辑您的答案并添加代码如何替换所选行吗?例如,仅在第 1 行 map[1] 中将 {0} 替换为 C。不能这样做 map[1] = map[1].Select(x => x.Replace("{0}", "C")).ToArray();
猜你喜欢
  • 2011-10-10
  • 2015-04-03
  • 1970-01-01
  • 2021-06-17
  • 2012-10-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多