Para retornar todos os valores do ENUM em C#
Enum.GetValues(typeof(EnumClass)).Cast(EnumClass);
Pode ser definida uma classe
public class EnumUtil
{
/// <summary>
/// Retorna lista com todos as propriedades e valores do ENUM
/// </summary>
/// <typeparam name="T"></typeparam>
/// <returns></returns>
public static List<SimpleEnumResponse> GetPropertyValues<T>()
{
List<SimpleEnumResponse> lstRetorno = new List<SimpleEnumResponse>();
SimpleEnumResponse model = null;
foreach (int i in Enum.GetValues(typeof(T)))
{
model = new SimpleEnumResponse();
model.Id = i;
model.Name = Enum.GetName(typeof(T), i);
lstRetorno.Add(model);
}
return lstRetorno;
}
/// <summary>
/// Retorna somente a lista de valores de um ENUM
/// </summary>
/// <typeparam name="T"></typeparam>
/// <returns></returns>
public static IEnumerable<T> GetValues<T>()
{
return Enum.GetValues(typeof(T)).Cast<T>();
}
}
public class SimpleEnumResponse
{
public int Id { get; set; }
public string Name { get; set; }
}
Forma de USO:
var listFoo = EnumUtil.GetPropertyValues<Foo>();