Enumの全要素をゲッツしたい

こういうEnumがあったとする。

type Direction = 
    | Up = 0
    | Right = 1 
    | Down = 2
    | Left = 3

その要素を全ゲッツしたければ

System.Enum.GetValues(typeof<Direction>)

とすればよい。System.Enumを叩けば、Enum周りのものはだいたい出てくると覚えよう。これも.NETの機能か。

System.Arrayからのキャスト

上の結果はSystem.Arrayという型になっているが、これだと使いにくいので、以下のようにcastするのがよさげ。

System.Enum.GetValues(typeof<Direction>) |> Seq.cast |> Seq.map unbox<Direction>;;