Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
HashSet`.ToArray()`使用F#_F#_Ienumerable_Hashset - Fatal编程技术网

HashSet`.ToArray()`使用F#

HashSet`.ToArray()`使用F#,f#,ienumerable,hashset,F#,Ienumerable,Hashset,我需要做什么才能调用HashSet的.ToArray()?我尝试了以下方法,但无效: let a = System.Collections.Generic.HashSet () a.Add 5 |> ignore a.ToArray () // Not possible let b = a :> System.Collections.IEnumerable b.ToArray () // Not possible ,声明如下: ToArray:从IEnumerable创建数组。(由

我需要做什么才能调用HashSet的
.ToArray()
?我尝试了以下方法,但无效:

let a = System.Collections.Generic.HashSet ()
a.Add 5 |> ignore
a.ToArray () // Not possible
let b = a :> System.Collections.IEnumerable
b.ToArray () // Not possible
,声明如下:

ToArray:从IEnumerable创建数组。(由可枚举项定义。)


所以应该有一种方法。

我相信这是一种扩展方法,所以你需要打开包含可枚举(Linq?)的名称空间来获取它,就像在C#中一样。

我相信这是一种扩展方法,所以你需要打开包含可枚举(Linq?)的名称空间来获取它,正如在C#

中一样,
HashSet
类型在F#中实现了标准的泛型
IEnumerable
),因此您可以使用
Seq.toArray
(无需打开任何名称空间):


使用C#extension method
ToArray
也可以(如果您打开
System.Linq
),但我认为使用标准的F#函数更惯用。

HashSet类型在F#中实现标准的generic
IEnumerable
),因此您可以使用
Seq.ToArray
(无需打开任何名称空间):

使用C#extension method
ToArray
也可以(如果打开
System.Linq
),但我认为使用标准的F#函数更为惯用。

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#
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#