3

(それぞれ) 5 桁の数列を書かなければなりません。私のコードは次のとおりです。

int count = 1;
string labelCount = "";
foreach (var directory in folderList)
{
    if (count < 10)
    {
        labelCount = "0000" + count.ToString();
    }
    else if (count < 100)
    {
        labelCount = "000" + count.ToString();
    }
    else if (count < 1000)
    {
        labelCount = "00" + count.ToString();
    }
    else if (count < 10000)
    {
        labelCount = "0" + count.ToString();
    }

    count++;
}

しかし、私の意見ではそれほど良く見えません。数値をフォーマットする方法 (左に 0xN を追加する) はありますか、それが唯一の方法ですか?

4

5 に答える 5

7

メソッドにフォーマットを与えるだけToString

var str = count.ToString("00000");
于 2013-04-18T09:42:57.300 に答える
5

見てみましょうString.PadLeft

string formatted = count.ToString().PadLeft(6, '0');
于 2013-04-18T09:42:49.113 に答える
0

このように行くのはどうですか?

int count = 1;
string labelCount = "";

foreach (var directory in folderList)
{
   int i = 10000;
   while (count < i)
   {
       labelCount += 0;
       i /= 10;
   }

   labelCount += count.ToString();
   count++;
}
于 2013-04-18T09:52:51.933 に答える
0

以下のようにしてみてください、それはあなたを助けるでしょう...

labelCount  = string.Format("{0:00000}", count);

すべてのフォーマットについては、こちらを参照してください: String.Format

于 2013-04-18T09:47:24.570 に答える
-2

これは、次の手順で実現できます。

string formatted = count.ToString();
for(int i = 0; i < count - 5; i++)
{
    formatted = "0" + formatted;
}
labelCount.Text = formatted;

編集:すみません、私のせいです!次のようにする必要があります。

//..
for(int i = 0; i < 5 - count.ToString().Length; i++)
//..
于 2013-04-18T09:44:48.313 に答える