共用方式為


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

參數

  • chooser
    型別:'T -> 'U option

    函式,將型別 T 的項目轉換成型別 U 的選項。

  • source
    型別:seq<'T>

    型別 T 的輸入序列。

例外狀況

例外狀況

條件

ArgumentNullException

當輸入序列為 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)。

請參閱

參考

Collections.Seq 模組 (F#)

Microsoft.FSharp.Collections 命名空間 (F#)