2012-04-19 9 views
3

string.Formatをこのように使用できますか?C#でString.Formatのインデックス番号をstringに置き換えることは可能ですか?

1)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"; 
+0

あなたが想像した場合のその後の割り当て 'サンプル[0] = "MIKE"; '、値のどこかに文字列があります。"私の名前はMIKE、私は{1}に住んでいます... ";では、これを行うための組み込みの方法はありません。あなたはこれを達成するためのクラスを作成することができますが、魅力的なユースケースがなければ、その努力に値するとは思えません。 – phoog

答えて

1

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())); 
3
  1. 文字列テンプレートに文字列を一つずつ追加されています*文字列 *

    string sample = "Hello, {name}"; 
    
    //I want to put a name string into {name}, is it possible? 
    

    に番号を交換してください

  2. はい。ちょうどその(thisはあなたが使用することになり、特定の過負荷である)String.Formatにその配列を渡す、配列を作成:ここで

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

あなたは#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); 
    } 
+0

自分のコードスニペットにコメントとしてあります。実際に 'string []'の代わりに 'object []'を使うことができます。私はあなたの例が文字列を持っていたので 'string []'を使用しました。 – CodingWithSpike

関連する問題