【发布时间】:2020-07-30 19:13:30
【问题描述】:
将列表转换为元组使用 how-can-i-convert-between-f-list-and-f-tuple
添加let a' = Array.map box a
由于 MakeTuple 需要 obj 数组,
和let t = unbox<float*float*float> o 获取元组。
例子:
let a = List.toArray [1.0; 2.0; 3.0]
let types = a |> Array.map (fun o -> o.GetType())
let tupleType = Microsoft.FSharp.Reflection.FSharpType.MakeTupleType types
let a' = Array.map box a
let o = Reflection.FSharpValue.MakeTuple (a' , tupleType)
let t = unbox<float*float*float> o
这适用于长度为 3 的浮点列表。根据需要返回 val t : float * float * float = (1.0, 2.0, 3.0)。
但我想转换任意长度的列表。
从列表转换为 obj 适用于任意长度(和类型),我的问题是拆箱。
【问题讨论】:
标签: f#