Share via


Funzione Seq.choose<'T,'U> (F#)

Consente di applicare la funzione fornita a ogni elemento dell'elenco e restituisce l'elenco con i risultati per ogni elemento in cui la funzione restituisce Some con un valore.

Percorso spazio dei nomi/modulo: Microsoft.FSharp.Collections.Seq

Assembly: FSharp.Core (in FSharp.Core.dll)

// Signature:
Seq.choose : ('T -> 'U option) -> seq<'T> -> seq<'U>

// Usage:
Seq.choose chooser source

Parametri

  • chooser
    Tipo: 'T -> 'Uoption

    Funzione per trasformare elementi di tipo T in opzioni di tipo U.

  • source
    Tipo: seq<'T>

    Sequenza di input del tipo T.

Eccezioni

Eccezione

Condizione

ArgumentNullException

Generata se la sequenza di input è Null.

Valore restituito

Sequenza risultante.

Note

La sequenza restituita può essere passata in modo sicuro tra thread.L'accesso ai singoli valori IEnumerator generati dalla sequenza restituita non deve essere tuttavia eseguito in modo simultaneo.

Questa funzione è denominata Choose negli assembly compilati.Utilizzare questo nome se si accede alla funzione da un linguaggio diverso da F# o tramite reflection.

Esempio

Nell'esempio di codice riportato di seguito viene illustrato l'utilizzo di Seq.choose per selezionare elementi da una sequenza utilizzando un'espressione lambda che utilizza i modelli di ricerca per restituire un tipo di opzione.

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
  

Piattaforme

Windows 8, Windows 7, Windows Server 2012, Windows Server 2008 R2

Informazioni sulla versione

Versioni della libreria di base F#

Supportato in: 2,0, 4,0, portabile

Vedere anche

Riferimenti

Modulo Collections.Seq (F#)

Spazio dei nomi Microsoft.FSharp.Collections (F#)