Int значение менее 10 преобразовать в строку двухзначное число

string strI;   

for (int i = 1; i < 100; i++)
    strI = i.ToString();

здесь, если i = 1, то ToString дает "1"

Но я хочу получить "01" или "001"

Это выглядит довольно просто, но есть только статья о

datetime.ToString("yyyy-MM-dd")`

Ответ 1

i.ToString("00")

или

i.ToString("000")

в зависимости от того, что вы хотите

Посмотрите статью MSDN на пользовательские строки числового формата для получения дополнительных параметров: http://msdn.microsoft.com/en-us/library/0c899ak8(VS.71).aspx

Ответ 3

Принятый ответ хорош и быстр:

i.ToString("00")

или

i.ToString("000")

Если вам нужна более сложная задача, String.Format стоит попробовать:

var str1 = "";
var str2 = "";
for (int i = 1; i < 100; i++)
{
    str1 = String.Format("{0:00}", i);
    str2 = String.Format("{0:000}", i);
}

Для случая i = 10:

str1: "10"
str2: "010"

Я использую это, например, для очистки текста на определенных элементах управления ярлыками в моей форме по имени:

private void EmptyLabelArray()
{
    var fmt = "Label_Row{0:00}_Col{0:00}";
    for (var rowIndex = 0; rowIndex < 100; rowIndex++)
    {
        for (var colIndex = 0; colIndex < 100; colIndex++)
        {
            var lblName = String.Format(fmt, rowIndex, colIndex);
            foreach (var ctrl in this.Controls)
            {
                var lbl = ctrl as Label;
                if ((lbl != null) && (lbl.Name == lblName))
                {
                    lbl.Text = null;
                }
            }
        }
    }
}

Ответ 4

Этот пост в блоге - отличный маленький чит-лист, который поможет вам прикрепить строки к различным форматам.

ссылка на удаленный троян

Изменить

Ссылка была удалена, поскольку Google временно предупредил, что сайт (или связанный сайт), возможно, распространял вредоносное программное обеспечение. В настоящее время он отсутствует в списке, который больше не упоминается как проблемный. Google "SteveX String Formatting" вы найдете результат поиска, и вы можете посетить его по своему усмотрению.

Ответ 5

Вы также можете сделать это так

private static string GetPaddingSequence(int padding)
{
      StringBuilder SB = new StringBuilder();
      for (int i = 0; i < padding; i++)
      {
           SB.Append("0");
      }

      return SB.ToString();
  }

public static string FormatNumber(int number, int padding)
{
    return number.ToString(GetPaddingSequence(padding));
}

Наконец, вызовите функцию FormatNumber

string x = FormatNumber(1,2);

Выход будет 01, который основан на вашем параметре заполнения. Увеличение его приведет к увеличению числа 0

Ответ 6

Я не могу поверить, что никто не предложил это:

int i = 9;
i.ToString("D2"); // Will give you the string "09"

или же

i.ToString("D8"); // Will give you the string "00000009"

Если вы хотите шестнадцатеричный:

byte b = 255;
b.ToString("X2"); // Will give you the string "FF"

Вы даже можете использовать только "C" для отображения в качестве валюты, если вы используете символ валюты. Смотрите здесь: https://docs.microsoft.com/en-us/dotnet/api/system.int32.tostring?view=netframework-4.7.2#System_Int32_ToString_System_String_