0

文字列ビルダーAppendFormatを動的に使用する方法。以下の私のコードはエラーを示しています。MVC c#でそれを正しく行うにはどうすればよいですか?

コード:

var s = new StringBuilder();
s.AppendFormat("\"{0}\",\"{1}",
                     "test1",
                     "test2"
                              );
for(var i = 2; i < 10 ; i++)
{
     s.AppendFormat(",\"{"+i+"}\"",  "loop"); // error shows here
}
4

3 に答える 3

0

AppendFormat を使用しているときは常に、0 から開始する必要があります。

これを試して。

var s = new StringBuilder();
s.AppendFormat("\"{0}\",\"{1}",
                 "test1",
                 "test2"
   );
for(var i = 2; i < 10 ; i++)
{
 s.AppendFormat(",\"{0}\"",  "loop");  
}  

動的カウンターが必要な場合は、これで回避できます。

var s = new StringBuilder();
var s1 = new StringBuilder();
string[] _d = new string [10];
s.AppendFormat("\"{0}\",\"{1}",
               "test1",
               "test2"
              );
for(var i = 0; i < 10 ; i++)
{
     s1.Append(",\" Loop {"+i+"}\"");
    _d[i] = i.ToString();
}
s.AppendFormat(s1.ToString(), _d);
于 2013-09-24T11:47:08.670 に答える
0

これはあなたが望むことをしますが、2つのフォーマットを行うのではなく、最初にあなたが望むものを構築するだけです.

var format = new StringBuilder();
format.Append("\"{0}\",\"{1}\"");
for(var i = 2; i < 10 ; i++)
{
    format.AppendFormat(",\"{{{0}}}\"",  i);
}

その後、あなたはすることができます、

var result = string.Format(
    format.ToString(),
    "test1",
    "test2",
    "loop",
    "loop",
    "loop",
    "loop",
    "loop",
    "loop",
    "loop",
    "loop",
    "loop");
于 2013-09-24T11:48:32.873 に答える