Dot-Net

如何在 F# 中列舉列舉/類型

  • August 22, 2021

我有一個這樣定義的列舉類型:

type tags = 
   | ART  = 0
   | N    = 1
   | V    = 2 
   | P    = 3
   | NULL = 4

有沒有辦法做一個for ... in tags do

這是我得到的錯誤:

tags未定義值、建構子、命名空間或類型

使用Enum.GetValues

let allTags = Enum.GetValues(typeof<tags>)

怎麼樣:

let enumToList<'a> = (Enum.GetValues(typeof<'a>) :?> ('a [])) |> Array.toList

這具有提供強類型列表的優點

要使用,只需:

let tagList = enumToList<tags>

引用自:https://stackoverflow.com/questions/2181956