如何在 f# 中合并数组

问题描述

没有找到连接数组的方法函数,“@”和“+”运算符不起作用

是否有任何简单的函数或运算符可以做到这一点

就像在 js [...array1,element1,elment2] 中一样

给定

let a = [|1;2;3|]
let b = [|2;3;4|]

想要

let c = [|1;2;3;4|]
let d = [|1;2;3;2;3;4|]

解决方法

根据您所做的工作,如果您发现自己附加了很多内容,则数组可能是错误的数据结构。

数组推导式语法给出了类似的体验,yield!生成数组,可以就地使用单个元素。

[| yield! a; 4] = [| 1; 2; 3; 4|]

[| yield! a; yield! b |] =  [|1; 2; 3; 2; 3; 4|]
,

您可以使用内置函数

let c = Array.distinct (Array.concat [a; b])
let d = Array.concat [a; b] // allows arbitrary count of elements

更新: Array.distinct 保持元素的顺序