我花了足够的时间试图解决这个问题而我却做不到。
我有这个数组:
let A= [|1;2;3;4;5|]
let B= [|3;4;5;6;7;8|]
我希望在不重复元素的情况下使这些数组联合起来
let C=[|1;2;3;4;5;6;7;8|]
我认为使用Array.append A B,但我无法删除重复的元素。
答案 0 :(得分:5)
通常,如果您想创建仅包含不同元素的集合,您可能应考虑使用Set
代替。
let A = [|1;2;3;4;5|]
let B = [|3;4;5;6;7;8|]
let C = Set(A) + Set(B)
// 1; 2; 3; 4; 5; 6; 7; 8
或者,使用Seq.concat
和Seq.distinct
基本上会做同样的事情,但返回seq
:
let C = [ A ; B ]
|> Seq.concat
|> Seq.distinct
现在使用其中任何一种解决方案,如果您想将其转回数组,只需使用Seq.toArray
。
答案 1 :(得分:0)
let A = [|1;2;3;4;5|]
let B = [|3;4;5;6;7;8|]
let C = Set.ofArray A + Set.ofArray B :> seq<_>