Is there a way to convert an enum to a list that contains all the enum's options?
Is there a way to convert an enum to a list that contains all the enum's options?
This will return an IEnumerable<SomeEnum> of all the values of an Enum.
Enum.GetValues(typeof(SomeEnum)).Cast<SomeEnum>();
If you want that to be a List<SomeEnum>, just add .ToList() after .Cast<SomeEnum>().
To use the Cast function on an Array you need to have the System.Linq in your using section.
You could use the following generic method:
public static List<T> GetItemsList<T>(this int enums) where T : struct, IConvertible
{
if (!typeof (T).IsEnum)
{
throw new Exception("Type given must be an Enum");
}
return (from int item in Enum.GetValues(typeof (T))
where (enums & item) == item
select (T) Enum.Parse(typeof (T), item.ToString(new CultureInfo("en")))).ToList();
}