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 optionFunzione per trasformare elementi di tipo T in opzioni di tipo U.
source
Tipo: seq<'T>Sequenza di input del tipo T.
Eccezioni
Eccezione |
Condizione |
---|---|
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