繁体   English   中英

是否可以在C#中的String.Format中将索引号替换为字符串?

[英]is it possible to replace index number to string in String.Format in C#?

我可以像这样使用string.Format吗?

1)将Number替换为String

string sample = "Hello, {name}";

//I want to put a name string into {name}, is it possible?

* * 2)是否可以逐个添加字符串到字符串模板

string sample = "My name is {0}, I am living in {1} ...";

// put {0} value
// and put {1} value separately

ex)
sample[0] = "MIKE";
sample[1] = "Los Anageles";
  1. 没有

  2. 是; 只需构建一个数组,然后将该数组传递给String.Format是你将要使用的特殊重载):

     object[] values = new object[2]; values[0] = ...; values[1] = ...; String.Format(someString, values); 

以下是您完成#2的方法:

    [Test]
    public void Passing_StringArray_Into_StringFormat()
    {
        var replacements = new string[]
            {
                "MIKE",
                "Los Angeles"
            };
        string sample = string.Format("My name is {0}, I am living in {1} ...", replacements);

        Assert.AreEqual("My name is MIKE, I am living in Los Angeles ...", sample);
    }

你可以使用James Newton-King的FormatWith: http ://james.newtonking.com/archive/2008/03/29/formatwith-2-0-string-formatting-with-named-variables.aspx

Phil Haack有一篇好文章: http//haacked.com/archive/2009/01/04/fun-with-named-formats-string-parsing-and-edge-cases.aspx

1:

string sample1 = "Hello, {name}";
Console.WriteLine(sample1.Replace("{name}", "John Smith"));

2:

string sample2 = "My name is {0}, I am living in {1} ..."; 
var parms = new ArrayList();
parms.Add("John");
parms.Add("LA");
Console.WriteLine(string.Format(sample2, parms.ToArray()));

暂无
暂无

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

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