The short answer is use:
.ToString("000-000-0000");
Using 0 instead of # as a placeholder will include the a zero if the digit is missing.
But the longer answer is that it really doesn't make sense to convert a phone
number from a string to a number in the first place exactly because of leading zeros. The same applies to lots of other "numbers" that aren't really numbers, but are codes instead. Like zip codes for example.
If Number
is a string and is coming from a user input, you also have the problem that the user might insert -
already. Or even brackets. So you might be approaching this entirely the wrong way to start with.
A better solution would be to use a regex to extract and then format the numerical digits from your string. For that see:
https://stackoverflow.com/a/188607
For example.