F# - 将交错数组转换为 Array2D
F# - Convert Jagged Array to Array2D
@scrwtp 提供了一个非常有用的功能(toJagged):
let toJagged<'a> (arr: 'a[,]) : 'a [][] =
[| for x in 0 .. Array2D.length1 arr - 1 do
yield [| for y in 0 .. Array2D.length2 arr - 1 -> arr.[x, y] |]
|]
从二维数组转换为锯齿状数组。是否有等效函数 (toArray2D) 可用于从锯齿状数组转换为二维数组(假设锯齿状数组中的每一行具有相同数量的元素)?
有一个内置函数 array2D
可以做到这一点:
array2D
[| [| 1; 2 |]
[| 3; 4 |] |]
array2D
函数的类型为 seq<#seq<'T>> -> 'T[,]
,因此它更通用 - 它可以将任何序列值序列转换为二维数组,但由于锯齿状数组 is一个序列的序列,这就是你所需要的。请注意,如果嵌套数组的长度不同,则会抛出此异常。
@scrwtp 提供了一个非常有用的功能(toJagged):
let toJagged<'a> (arr: 'a[,]) : 'a [][] =
[| for x in 0 .. Array2D.length1 arr - 1 do
yield [| for y in 0 .. Array2D.length2 arr - 1 -> arr.[x, y] |]
|]
从二维数组转换为锯齿状数组。是否有等效函数 (toArray2D) 可用于从锯齿状数组转换为二维数组(假设锯齿状数组中的每一行具有相同数量的元素)?
有一个内置函数 array2D
可以做到这一点:
array2D
[| [| 1; 2 |]
[| 3; 4 |] |]
array2D
函数的类型为 seq<#seq<'T>> -> 'T[,]
,因此它更通用 - 它可以将任何序列值序列转换为二维数组,但由于锯齿状数组 is一个序列的序列,这就是你所需要的。请注意,如果嵌套数组的长度不同,则会抛出此异常。