f# - 将元组数组转换为二维数组

标签 f#

我只是想知道是否有更好的方法将元组数组转换为二维数组?

let list = [|("a", "1"); ("b", "2"); ("c", "3")|];;
let arr = Array2D.init (Array.length list) 2 (fun i j -> if j <> 0 then (fst list.[i]) else (snd list.[i]));;

最佳答案

更简洁的方法是使用 array2D :

[|("a", "1"); ("b", "2"); ("c", "3")|]
|> Seq.map (fun (x, y) -> [|x; y|])
|> array2D

但是有什么理由不从一开始就使用数组数组来进行简单的初始化,例如
let arr =
  [|[|"a"; "1"|]; 
    [|"b"; "2"|]; 
    [|"c"; "3"|]|]
  |> array2D

关于f# - 将元组数组转换为二维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16774205/

相关文章:

random - F# 中的闭包和随机数

dependency-injection - 什么时候使用接口(interface),什么时候使用高阶函数?

entity-framework - F#数据访问和EF迁移

types - F# 强制转换/将自定义类型转换为原始类型

f# - 我如何在 F# 中执行 APL 中的压缩?

c# - 在 C# 中生成函数的最佳生成函数的方法

f# - F# 中的命令式多态性

F# 签名文件 - 定义构造函数参数

generics - 为什么自动泛化有时会推断出过于具体的类型?

graph - 在 F# 中制作循环图。是否需要可变性?