Freigeben über


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 -> 'Key

    Eine 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

Siehe auch

Weitere Ressourcen

Collections.Seq-Modul (F#)

Microsoft.FSharp.Collections-Namespace (F#)