Seq.choose<'T,'U> 函数 (F#)
将给定函数应用于列表中的每个元素并返回一个列表,该列表包含此函数返回 Some 及某个值的每个元素的结果。
命名空间/模块路径:Microsoft.FSharp.Collections.Seq
程序集:FSharp.Core(在 FSharp.Core.dll 中)
// Signature:
Seq.choose : ('T -> 'U option) -> seq<'T> -> seq<'U>
// Usage:
Seq.choose chooser source
参数
异常
异常 |
Condition |
---|---|
在输入序列为 null 时引发。 |
返回值
结果序列。
备注
返回的序列可在线程间安全地传递。 但是,不应以并发方式访问从返回的序列中生成的单个 IEnumerator 值。
此函数在编译的程序集中名为 Choose。 如果从 F# 以外的语言中访问函数,或通过反射访问成员,请使用此名称。
示例
以下代码示例演示如何通过与返回选项的类型模式匹配的 lambda 表达式使用 Seq.choose 从序列中选择元素。
let numbers = seq {1..20}
let evens = Seq.choose(fun x ->
match x with
| x when x%2=0 -> Some(x)
| _ -> None ) numbers
printfn "numbers = %A\n" numbers
printfn "evens = %A" evens
平台
Windows 7、Windows Vista SP2、Windows XP SP3、Windows XP x64 SP2、Windows Server 2008 R2、Windows Server 2008 SP2、Windows Server 2003 SP2
版本信息
F# 运行时
受以下版本支持:2.0、4.0
Silverlight
受以下版本支持:3