Freigeben über


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

Wendet die angegebene Funktion auf jedes Element der Liste an und gibt die Liste zurück, die aus den Ergebnissen für die einzelnen Elemente besteht, bei denen die Funktion Some mit einem bestimmten Wert zurückgibt.

Namespace/Modulpfad: 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

Parameter

  • chooser
    Typ: 'T -> 'Uoption

    Eine Funktion zur Umwandlung von T-Elementen in U-Optionen.

  • source
    Typ: seq<'T>

    Die Eingabesequenz vom Typ T.

Ausnahmen

Ausnahme

Bedingung

ArgumentNullException

Wird ausgelöst, wenn die Eingabesequenz NULL ist.

Rückgabewert

Die Ergebnissequenz.

Hinweise

Die zurückgegebene Sequenz kann zwischen Threads sicher übergeben werden.Auf einzelne IEnumerator-Werte, die aus der zurückgegebenen Sequenz generiert werden, sollte nicht gleichzeitig zugegriffen werden.

Der Name dieser Funktion in kompilierten Assemblys lautet Choose.Verwenden Sie diesen Namen, wenn Sie in einer anderen .NET-Sprache als F# oder durch Reflektion auf die Funktion zugreifen.

Beispiel

Im folgenden Codebeispiel wird veranschaulicht, wie mit Seq.choose Elemente aus einer Sequenz mithilfe eines Lambda-Ausdrucks ausgewählt werden, der zum Zurückgeben eines Optionstyps den Mustervergleich verwendet.

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
  

Plattformen

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

Versionsinformationen

F#-Kern-Bibliotheks-Versionen

Unterstützt in: 2,0, 4,0, portablen

Siehe auch

Referenz

Collections.Seq-Modul (F#)

Microsoft.FSharp.Collections-Namespace (F#)