在保持顺序的同时计算联合(设置)数组

Gon*_*cia 1 arrays f#

我花了足够的时间试图解决这个问题而我却做不到.
我有这个数组:

   let A= [|1;2;3;4;5|]
   let B= [|3;4;5;6;7;8|]
Run Code Online (Sandbox Code Playgroud)

我希望使这些数组的并集不会出现重复的元素

   let C=[|1;2;3;4;5;6;7;8|]
Run Code Online (Sandbox Code Playgroud)

我认为使用Array.append AB,但我无法删除重复的元素.

p.s*_*w.g 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 
Run Code Online (Sandbox Code Playgroud)

或者,使用Seq.concatSeq.distinct将基本上做同样的事情,但返回一个seq:

let C = [ A ; B ] 
        |> Seq.concat 
        |> Seq.distinct
Run Code Online (Sandbox Code Playgroud)

现在使用这些解决方案中的任何一个,如果要将其转回数组,只需使用即可Seq.toArray.