Condividi tramite


Funzione Seq.groupBy<'T,'Key> (F#)

Consente di applicare una funzione di generazione di chiavi a ogni elemento di una sequenza e produce una sequenza di chiavi univoche e una sequenza di tutti gli elementi che dispongono di ogni chiave.

Percorso spazio dei nomi/modulo: 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

Parametri

  • projection
    Tipo: 'T -> 'Key

    Funzione che trasforma un elemento della sequenza in una chiave confrontabile.

  • source
    Tipo: seq<'T>

    Sequenza di input.

Valore restituito

Sequenza di tuple in cui ogni tupla contiene la chiave univoca e una sequenza di tutti gli elementi che corrispondono alla chiave.

Note

Questa funzione restituisce una sequenza che attraversa l'intera sequenza iniziale non appena viene iterata. Di conseguenza questa funzione non deve essere utilizzata con sequenze di grandi dimensioni o infinite. La funzione non presume alcun ordine della sequenza originale.

Questa funzione è denominata GroupBy negli assembly compilati. Utilizzare questo nome se si accede alla funzione da un linguaggio diverso da F# o tramite reflection.

Esempio

Nell'esempio riportato di seguito viene illustrato l'utilizzo di Seq.groupBy per raggruppare i numeri dispari e pari di una sequenza in due sequenze distinte.

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
  

Piattaforme

Windows 7, Windows Vista SP2, Windows XP SP3, Windows XP x64 SP2, Windows Server 2008 R2, Windows Server 2008 SP2, Windows Server 2003 SP2.

Informazioni sulla versione

F# Runtime

Supportato in: 2.0, 4.0

Silverlight

Supportato in: 3

Vedere anche

Riferimenti

Modulo Collections.Seq (F#)

Spazio dei nomi Microsoft.FSharp.Collections (F#)