2011-01-21 42 views
0
int i = 1; 
for (; i <= 10; i++) 
{ 
    string str = "test{0}" , i; 
    Console.WriteLine(str); 
} 

このコードは機能しません。理由を知りたいのですが、これを作成する正しい方法は何ですか?C#の文字列の操作、なぜこれは機能しませんか?

+2

あなたは、このコードを達成するために何をしようとしていますか? – Bernard

+0

達成しようとしている出力は何ですか? –

+0

あなたは何をしようとしていますか? – JaredPar

答えて

11

は、私はあなたがString.Formatの呼び出しでそれをラップするためのものだと思います。

string str = String.Format("test{0}", i); 
6

あなたはこの構文を試してみてください:

for (int i = 1; i <= 10; i++) {  
    string str = String.Format("test{0}", i); 
    Console.WriteLine(str); 
} 
2

あなたの文字列を定義した方法は、まったく正しくはありません。私は、あなたが探しているコードを推測している:

int i = 1; 
for(; i <= 10; i++) 
{ 
    string str = string.Format("test{0}", i); 
    Console.WriteLine(str); 
} 

しかし、その場合には新しい文字列を作成し、すべての反復のためFormat()を呼び出すための理由は本当にありません。 1つの文字列を作成して、Console.WriteLine()がフォーマットを処理できるようにすることができます。

string str = "test{0}"; 

for(int i = 1; i <= 10; i++) 
    Console.WriteLine(str, i); 
+3

Ew、中括弧はありません。おそらくほとんど理由がないので、私を悩ますだけです。 –

1

私の推測では、あなたがこのような何かをしたいです:

for(int i=1;i<=10;i++) 
    Console.WriteLine(String.Format("test{0}",i); 

あなたはコンマで各入力を区切り、括弧で物事の任意の数を置くことができます。

string Month = "Jan"; 
int day = 21; 
string temp = String.Format("Today is:{0} - {1}/{2}",Month,day,2011); 

tempが値を取得する「今日は:月 - 2011分の21」

将来的には所望の出力が参考になります。

編集:スペル

0
int i; 
for (; i <= 10; i++) Console.WriteLine("test{0}", i);