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 -> 'KeyEine Funktion, die die Sequenzelemente in vergleichbare Schlüssel transformiert.
source
Typ: seq<'T>Die Eingabesequenz.
Ausnahmen
Ausnahme |
Bedingung |
---|---|
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