My number format in C# is not giving me a padded number
<p>I am using the following:</p>

<pre><code>    public static SelectList GetOptions&lt;T&gt;(string value = null) where T : struct
    {
        var values = EnumUtilities.GetSpacedOptions&lt;T&gt;();
        var options = new SelectList(values, "Value", "Text", value);
        return options;
    }

    public static IEnumerable&lt;SelectListItem&gt; GetSpacedOptions&lt;T&gt;(bool zeroPad = false) where T : struct
    {
        var t = typeof(T);
        if (!t.IsEnum)
        {
            throw new ArgumentException("Not an enum type");
        }
        var numberFormat = zeroPad ? "D2" : "g";
        var options = Enum.GetValues(t).Cast&lt;T&gt;()
            .Select(x =&gt; new SelectListItem
            {
                Value = ((int) Enum.ToObject(t, x)).ToString(numberFormat),
                Text = Regex.Replace(x.ToString(), "([A-Z])", " $1").Trim()
            });
        return options;
</code></pre>

<p>My enum has values:</p>

<pre><code>public enum DefaultStatus {
    Release = 0,
    Review = 1,
    InProgress = 2,
    Concept = 3,
    None = 99
};
</code></pre>

<p>From what I understand the number format should give my values of "01","02" etc but it's giving me ""1","2","3" .. </p>

<p>Is there something obvious I'm doing wrong?</p>
