Freigeben über


Seq.countBy<'T,'Key>-Funktion (F#)

Wendet eine Funktion zur Generierung von Schlüsseln auf die einzelnen Elemente einer Sequenz an und gibt eine Sequenz zurück, die eindeutige Schlüssel sowie die Anzahl der Vorkommen in der ursprünglichen Sequenz ergibt.

Namespace/Modulpfad: Microsoft.FSharp.Collections.Seq

Assembly: FSharp.Core (in FSharp.Core.dll)

// Signature:
Seq.countBy : ('T -> 'Key) -> seq<'T> -> seq<'Key * int> (requires equality)

// Usage:
Seq.countBy projection source

Parameter

  • projection
    Typ: 'T -> 'Key

    Eine Funktion, die jedes Element der Eingabesequenz in einen Schlüssel transformiert, der mit den anderen Schlüsseln verglichen werden soll.

  • source
    Typ: seq<'T>

    Die Eingabesequenz.

Ausnahmen

Ausnahme

Bedingung

ArgumentNullException

Wird ausgelöst, wenn die Eingabesequenz NULL ist.

Rückgabewert

Eine Sequenz von eindeutigen Schlüsseln und ihre Anzahl von Vorkommen in der ursprünglichen Sequenz.

Hinweise

Beachten Sie, dass diese Funktion eine Sequenz zurückgibt, die die gesamte anfängliche Sequenz traversiert, 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 CountBy. 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.countBy zum Ermitteln der Anzahl der Elemente in einer Sequenz, die ungerade und gerade sind.

let mySeq1 = seq { 1.. 100 }
let printSeq seq1 = Seq.iter (printf "%A ") seq1; printfn ""
let seqResult = Seq.countBy (fun elem ->
    if (elem % 2 = 0) then 0 else 1) mySeq1

printSeq seqResult
  

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#)