C # convertir int a la cadena con ceros de relleno?

En C # tengo un valor entero que necesita ser contorneado a cadena pero necesita agregar ceros antes:

Por ejemplo:

int i = 1; 

Cuando lo convierto en cuerda, debe convertirse en 0001

Necesito saber la syntax en C #.

i.ToString().PadLeft(4, '0') – bien, pero no funciona para números negativos
i.ToString("0000"); – forma explícita
i.ToString("D4"); – especificador de formato de formato corto

 i.ToString("D4"); 

Vea MSDN en los especificadores de formato.

Aquí hay un buen ejemplo:

 int number = 1; //D4 = pad with 0000 string outputValue = String.Format("{0:D4}", number); Console.WriteLine(outputValue);//Prints 0001 //OR outputValue = number.ToString().PadLeft(4, '0'); Console.WriteLine(outputValue);//Prints 0001 as well 

Puedes usar:

 int x = 1; x.ToString("0000"); 

Interpolación de cadenas de estilo C # 6.0

 int i = 1; var str1 = $"{i:D4}"; var str2 = $"{i:0000}"; 
 i.ToString("0000"); 

Simplemente

 int i=123; string paddedI = i.ToString("D4"); 
 int p = 3; // fixed length padding int n = 55; // number to test string t = n.ToString("D" + p); // magic Console.WriteLine("Hello, world! >> {0}", t); // outputs: // Hello, world! >> 055 

Aquí quiero rellenar mi número con 4 dígitos. Por ejemplo, si es 1, debería mostrarse como 0001, si 11 se mostraría como 0011.

A continuación se muestra el código que logra esto:

 reciptno=1; // Pass only integer. string formatted = string.Format("{0:0000}", reciptno); TxtRecNo.Text = formatted; // Output=0001 

Implementé este código para generar un número de recibo de dinero para un archivo PDF.

Para rellenar int i para que coincida con la longitud de cadena de int x , cuando ambos pueden ser negativos:

 i.ToString().PadLeft((int)Math.Log10(Math.Abs(x < 0 ? x * 10 : x)) + 1, '0')