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

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

Versionsinformationen

F#-Runtime

Unterstützt in: 2.0, 4.0

Silverlight

Unterstützt in: 3

Siehe auch

Weitere Ressourcen

Collections.Seq-Modul (F#)

Microsoft.FSharp.Collections-Namespace (F#)