Sometimes you need to list the values of your enums. Typically, I have to represent them in dropdown-boxes for a web page. Here's my solution:
public static ListItem[] GetEnumValues(Type t)
{
List<ListItem> lc = new List<ListItem>();
lc.Add(new ListItem() { Text = "Choose an item", Value = "-1" });
if (t.UnderlyingSystemType.BaseType == typeof(System.Enum))
{
foreach (int value in Enum.GetValues(t))
{
lc.Add(new ListItem() { Text = Enum.GetName(t, value), Value = value.ToString() });
}
}
return lc.ToArray();
}
Then, to use it in a control, use the Items.AddRange() function:
_dropdown.Items.AddRange(SomeClass.GetEnumValues(typeof(myEnumType)));
Plain and easy, but as far as I know, not available directly from .NET.