Freigeben über


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

Wendet eine schlüsselgenerierende Funktion auf jedes Element einer Sequenz an und gibt eine Sequenz zurück, die eindeutige Schlüssel und deren Anzahl von 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 einer Eingabesequenz in einen Schlüssel umwandelt, der mit den anderen verglichen wird.

  • source
    Typ: seq<'T>

    Die Eingabesequenz.

Ausnahmen

Ausnahme

Bedingung

ArgumentNullException

Die Auslösung erfolgt, wenn die Eingabesequenz NULL ist.

Rückgabewert

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

Hinweise

Beachten Sie, dass diese Funktion eine Sequenz zurückgibt, die die gesamte ursprüngliche Sequenz durchläuft, sobald diese Sequenz eine Iteration durchläuft. Daher sollte diese Funktion nicht mit großen oder unendlichen Sequenzen verwendet werden. Die Funktion trifft keine Annahmen zur Reihenfolge der ursprünglichen Sequenz.

Der Name dieser Funktion in kompilierten Assemblys lautet CountBy. Verwenden Sie diesen Namen, wenn Sie in einer anderen Sprache als F# oder durch Reflektion auf die Funktion zugreifen.

Beispiel

Im folgenden Beispiel wird die Verwendung von Seq.countBy veranschaulicht, um die Anzahl von Elementen in einer Sequenz zu ermitteln, die ungerade oder 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 8, Windows 7, Windows Server 2012, Windows Server 2008 R2

Versionsinformationen

F#-Kernbibliotheksversionen

Unterstützt in: 2.0, 4.0, Portable

Siehe auch

Referenz

Collections.Seq-Modul (F#)

Microsoft.FSharp.Collections-Namespace (F#)