Seq.groupBy<'T,'Key>-Funktion (F#)
Wendet eine Funktion zur Generierung von Schlüsseln auf die einzelnen Elemente einer Sequenz an und ergibt eine Sequenz eindeutiger Schlüssel sowie eine Sequenz aller Elemente, die alle Schlüssel aufweisen.
Namespace/Modulpfad: Microsoft.FSharp.Collections.Seq
Assembly: FSharp.Core (in FSharp.Core.dll)
// Signature:
Seq.groupBy : ('T -> 'Key) -> seq<'T> -> seq<'Key * seq<'T>> (requires equality)
// Usage:
Seq.groupBy projection source
Parameter
projection
Typ: 'T -> 'KeyEine Funktion, die ein Element der Sequenz in einen vergleichbaren Schlüssel umwandelt.
source
Typ: seq<'T>Die Eingabesequenz.
Rückgabewert
Eine Sequenz von Tupeln, in denen jedes Tupel den eindeutigen Schlüssel und eine Sequenz aller Elemente enthält, die dem Schlüssel entsprechen.
Hinweise
Diese Funktion gibt eine Sequenz zurück, die die gesamte anfängliche Sequenz durchläuft, sobald die anfängliche Sequenz durchlaufen wird. Daher darf diese Funktion bei großen oder unendlichen Sequenzen nicht verwendet werden. Die Funktion setzt keine bestimmte Sortierung der ursprünglichen Sequenz voraus.
Der Name dieser Funktion in kompilierten Assemblys lautet GroupBy. Verwenden Sie diesen Namen, wenn Sie in einer anderen .NET-Sprache als F# oder durch Reflektion auf die Funktion zugreifen.
Beispiel
Das folgende Beispiel veranschaulicht die Verwendung von Seq.groupBy zum Gruppieren der ungeraden und geraden Zahlen in einer Sequenz in zwei unterschiedliche Sequenzen.
let sequence = seq { 1 .. 100 }
let printSeq seq1 = Seq.iter (printf "%A ") seq1; printfn ""
let sequences3 = Seq.groupBy (fun index ->
if (index % 2 = 0) then 0 else 1) sequence
sequences3 |> printSeq
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