如果我有数组A,而我还有一个布尔阵列isChosen与相同长度A如何建立从一个新的数组A,其中isChosen是true?类似的东西A.[isChosen]?我不能Array.filter直接使用,因为isChosen不是A元素的功能,没有Array.filteri像Array.mapi.
zip应该有帮助:
let l = [|1;2;3|]
let f = [|true; false; true|]
let r = [| for (v, f) in Seq.zip l f do if f then yield v|]
// or
let r = (l, f) ||> Seq.zip |> Seq.filter snd |> Seq.map fst |> Seq.toArray
Run Code Online (Sandbox Code Playgroud)