I agree this is a commonly raised issue with newb programmers.
I guess the easiest explanation i have given in the past is that from an internal system perspective you dont need the leading 0's as the take up space when stored in a database. To this extent the leading zeros are only used for presentation.
psuedo VB code.
dim iNum as integer
dim sString as string
sString = "000000"
iNum = 1
sOutput = RIGHT (sStr & cStr(iNum),6)
'from the above the sOutput would be left as "000001"
if you then need to read the int value simply cInt(sOUtput) would return 1
sorry for the vb but i am not a c# programmer.
ps. if this post has helped please press the star and leave some rep.
As LordOfLA said its pretty much all down to the formatting when you output it.
If you specifically need something like this then you'd probably want to create a structure with an array of numbers in it, but you would then need to write functions to ensure no array index had a number greater than 9.
something along the lines of
might do it though I have admittedly not tested it