Puede utilizar Enum.GetValues
, que devuelve una Array
de objetos que luego tiene que abatido a valores enteros. (Nota:. Estoy usando C# aplicación de Mono, tal vez las cosas son diferentes con .NET)
Estas son algunas de las funciones que he escrito para obtener una lista de todos los valores de la enumeración y para obtener los valores mínimos y máximos:
open System
module EnumUtil =
/// Return all values for an enumeration type
let EnumValues (enumType : Type) : int list =
let values = Enum.GetValues enumType
let lb = values.GetLowerBound 0
let ub = values.GetUpperBound 0
[lb .. ub] |> List.map (fun i -> values.GetValue i :?> int)
/// Return minimum and maximum values for an enumeration type
let EnumValueRange (enumType : Type) : int * int =
let values = EnumValues enumType
(List.min values), (List.max values)
eso no es un enum, es una unión. –
si necesita una enumeración, consulte http://research.microsoft.com/en-us/um/cambridge/projects/fsharp/manual/spec.html#_Toc245030918 –