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 optionEine Funktion zur Umwandlung von T-Elementen in U-Optionen.
source
Typ: seq<'T>Die Eingabesequenz vom Typ T.
Ausnahmen
Ausnahme |
Bedingung |
---|---|
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