F# 创建对象列表

F# 创建对象列表,f#,F#,想知道如何创建实例化对象的列表吗 我有这个 type myType = GoodState | BadState let create = seq {for i in 1 .. 100000 do yield new myType} 这似乎不起作用 有人知道怎么做吗 感谢您使用您定义的两个构造函数之一--GoodState和BadState来构造myType的值。两者都没有任何参数,因此可以使用以下参数创建值: let good : myType = GoodState let ba

想知道如何创建实例化对象的列表吗

我有这个

type myType = GoodState | BadState

let create =
    seq {for i in 1 .. 100000 do yield new myType}
这似乎不起作用

有人知道怎么做吗


感谢您使用您定义的两个构造函数之一--
GoodState
BadState
来构造
myType
的值。两者都没有任何参数,因此可以使用以下参数创建值:

let good : myType = GoodState
let bad : myType = BadState
你可以用例如

let create = seq {for i in 1 .. 100000 do yield GoodState}

myType是一个有区别的联合,因此您必须选择其中一个选项

type myType = GoodState | BadState

//using your syntax to create a sequence of BadState
let create1 = seq{for _ in 1 .. 100000 do BadState} //yield is not required anymore

//another syntax to create a list of GoodState
let create2 = List.init 100000 (fun _ -> GoodState)

顺便说一句,我使用了下划线“\u1”,因为在本例中我没有使用索引,但如果您想将其用于某些内容,可以替换为变量名。

create1
不是列表,这可能仍然会给OP带来问题。我建议在序列表达式之后添加
|>Seq.toList
。但另一种选择当然是简单地使用列表表达式,所以也可以添加它。