Condividi tramite


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 -> 'U option

    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 quando 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 7, Windows Vista SP2, Windows XP SP3, Windows XP x64 SP2, Windows Server 2008 R2, Windows Server 2008 SP2, Windows Server 2003 SP2.

Informazioni sulla versione

F# Runtime

Supportato in: 2.0, 4.0

Silverlight

Supportato in: 3

Vedere anche

Riferimenti

Modulo Collections.Seq (F#)

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