/// <summary>
/// Enum helper.
/// </summary>
public static class EnumHelper {
#region Get Enum Descriptor
/// <summary>
/// Get all enum descriptors.
/// </summary>
/// <param name="enumType">Enum type</param>
/// <returns>Enum descriptor list</returns>
public static IList<Descriptor<Int32>> GetEnumDescriptor(Type enumType) {
if (enumType == null)
throw new ArgumentNullException("enumType");
// Enum descriptor list
IList<Descriptor<Int32>> list = new List<Descriptor<Int32>>();
foreach (object valObj in Enum.GetValues(enumType)) {
Descriptor<Int32> item = new Descriptor<Int32>() {
Key = Convert.ToInt32(valObj),
Name = Enum.GetName(enumType, valObj)
};
list.Add(item);
}
return list;
}
/// <summary>
/// Get all enum descriptors.
/// </summary>
/// <typeparam name="E">Enum type</typeparam>
/// <returns>Enum descriptor list</returns>
public static IList<EnumDescriptor<E>> GetEnumDescriptor<E>() {
Type type = typeof(E);
if (!type.IsEnum)
throw new NotSupportedException("Only supported enum type.");
// Enum descriptor list
IList<EnumDescriptor<E>> list = new List<EnumDescriptor<E>>();
foreach (E value in Enum.GetValues(type)) {
EnumDescriptor<E> item = new EnumDescriptor<E>() {
Value = value
};
list.Add(item);
}
return list;
}
#endregion
}