私は以下を使用しています:
public static SelectList GetOptions<T>(string value = null) where T : struct
{
var values = EnumUtilities.GetSpacedOptions<T>();
var options = new SelectList(values, "Value", "Text", value);
return options;
}
public static IEnumerable<SelectListItem> GetSpacedOptions<T>(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<T>()
.Select(x => new SelectListItem
{
Value = ((int) Enum.ToObject(t, x)).ToString(numberFormat),
Text = Regex.Replace(x.ToString(), "([A-Z])", " $1").Trim()
});
return options;
私の列挙型には値があります:
public enum DefaultStatus {
Release = 0,
Review = 1,
InProgress = 2,
Concept = 3,
None = 99
};
私が理解していることから、数値形式は「01」、「02」などの値を与えるはずですが、それは私に「1」、「2」、「3」を与えています。
私が間違っていることは明らかですか?