我有以下数组
let evens = [|
for key in numbersDictionary.Keys ->
match numbersDictionary.[key] % 2
| 0 -> Some(numbersDictionary.[key])
| _ -> None |]
Run Code Online (Sandbox Code Playgroud)
我确实有None奇数的选项类型数组.如何调整上述声明所以evens成为int[]代替int option [],没有NoneS'
这应该工作:
let evens =
numbersDictionary
|> Seq.map (fun kvp -> kvp.Value)
|> Seq.filter (fun v -> v % 2 = 0)
|> Seq.toArray
Run Code Online (Sandbox Code Playgroud)
更简单:
let evens =
numbersDictionary.Values
|> Seq.filter (fun v -> v % 2 = 0)
|> Seq.toArray
Run Code Online (Sandbox Code Playgroud)
或者更接近你的问题:
let evens =
[| for v in dict.Values do if v%2=0 then yield v |]
Run Code Online (Sandbox Code Playgroud)