Freigeben über


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

Gibt eine Sequenz zurück, die nach generischen Hash- und Gleichheitsvergleichen für die Schlüssel, die von der angegebenen Funktion zur Generierung von Schlüsseln zurückgegeben werden, keine doppelten Werte enthält. Wenn ein Element mehrere Male in der Sequenz auftritt, werden alle nachfolgenden Vorkommen verworfen.

Namespace/Modulpfad: Microsoft.FSharp.Collections.Seq

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

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

// Usage:
Seq.distinctBy projection source

Parameter

  • projection
    Typ: 'T -> 'Key

    Eine Funktion, die die Sequenzelemente in vergleichbare Schlüssel transformiert.

  • source
    Typ: seq<'T>

    Die Eingabesequenz.

Ausnahmen

Ausnahme

Bedingung

ArgumentNullException

Wird ausgelöst, wenn die Eingabesequenz NULL ist.

Rückgabewert

Die Ergebnissequenz.

Hinweise

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

Beispiel

Im folgenden Beispiel wird veranschaulicht, wie mit "Seq.distinctBy" nur die Elemente in einer Sequenz gehalten werden, die einen verschiedenen absoluten Wert haben. Das erste Element mit einem bestimmten Ergebnis wird in der neuen Reihenfolge beibehalten, daher werden die positiven Zahlen von 1 bis 5 in der Sequenz von -5 bis +10 verworfen.

let inputSequence = { -5 .. 10 }
let printSeq seq1 = Seq.iter (printf "%A ") seq1; printfn ""
printfn "Original sequence: "
printSeq inputSequence
printfn "\nSequence with distinct absolute values: "
let seqDistinctAbsoluteValue = Seq.distinctBy (fun elem -> abs elem) inputSequence
seqDistinctAbsoluteValue |> 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#)