Bạn có thể sử dụng Enum.GetValues
, mà trả về một Array
của đối tượng mà sau đó bạn phải downCast các giá trị số nguyên. (Lưu ý:. Tôi đang sử dụng Mono của F # thực hiện; có lẽ mọi thứ đã khác với NET)
Dưới đây là một số chức năng tôi đã viết để có được một danh sách tất cả các giá trị liệt kê và để có được những phút và giá trị tối đa:
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)
Nguồn
2014-05-01 00:06:20
không phải là điều kiện, đó là công đoàn. –
nếu bạn cần một enum, hãy xem http://research.microsoft.com/en-us/um/cambridge/projects/fsharp/manual/spec.html#_Toc245030918 –