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
參數
例外狀況
例外狀況 |
條件 |
---|---|
當輸入序列為 null 時擲回。 |
傳回值
結果序列。
備註
傳回的序列可以在執行緒之間安全地傳送。 但是,您不應該並行存取傳回之序列產生的個別 IEnumerator 值。
這個函式在已編譯的組件中名為 Choose。 如果您是透過 F# 以外的語言,或是透過反映來存取函式,請使用這個名稱。
範例
下列程式碼範例示範如何使用 Seq.choose,透過利用模式比對傳回選項型別之 Lambda 運算式選取序列中的項目。
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 8 中, Windows 7, Windows Server 2012 上, Windows Server 2008 R2
版本資訊
F# 核心程式庫版本
支援版本:2.0, 4.0,可攜式執行檔 (PE)。