Old*_*vec 1 ienumerable f# hashset
我需要做什么才能调用.ToArray ()HashSet?我尝试过以下但是没有用:
let a = System.Collections.Generic.HashSet ()
a.Add 5 |> ignore
a.ToArray () // Not possible
let b = a :> System.Collections.IEnumerable
b.ToArray () // Not possible
Run Code Online (Sandbox Code Playgroud)
这里说明了这一点:
ToArray:从IEnumerable创建一个数组.(由Enumerable定义.)
所以应该有办法.
IEnumerable.ToArray()被定义为System.Linq下的扩展方法.或者,使用Seq.toArray或Array.ofSeq.
open System.Collections.Generic
open System.Linq
let hs = HashSet()
hs.Add 4
hs.Add 2
let arr = hs.ToArray() // needs System.Linq
let arr2 = hs |> Seq.toArray // provided by F#
Run Code Online (Sandbox Code Playgroud)