F#将Seq转换为ICollection

时间:2019-07-16 11:29:15

标签: f#

我有一系列的类型

let rackStatusesPrototype : RackStatus seq

,现在我想将其分配给c#的一个属性,该属性是ICollection类型,但是我遇到了问题。我尝试过:

let test : ICollection<RackStatus> = rackStatusesPrototype :> ICollection<RackStatus>

但是它说不兼容的类型。我该怎么办?

1 个答案:

答案 0 :(得分:4)

最简单的操作是open System.Linq并在ToList()上调用rackStatusesPrototype,以将其转换为实现ICollection的C#列表。

F#数组也实现了ICollection,因此rackStatusesPrototype |> Array.ofSeq也应该工作。如果您没有与C#world进行其他交互,则这可能是首选方式。

请注意,F#列表/集合/地图当前不实现ICollection接口,但实现adding it is planned