Udostępnij za pośrednictwem


Seq.distinctBy<'T,'Key> — Funkcja (F#)

Zwraca sekwencja nie zduplikowane pozycje według rodzajowy mieszania i równości porównań kluczy, zwracany przez funkcję danej generowania klucza.Jeśli element występuje wiele razy w sekwencji później wystąpień są odrzucane.

Ścieżka obszaru nazw/modułu: Microsoft.FSharp.Collections.Seq

Zgromadzenie: FSharp.Core (w FSharp.Core.dll)

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

// Usage:
Seq.distinctBy projection source

Parametry

  • projection
    Typ:'T -> 'Key

    Funkcję transformuje elementy sekwencji klawiszy porównywalne.

  • source
    Typ: seq<'T>

    Sekwencji wejściowych.

Wyjątki

Wyjątek

Warunek

ArgumentNullException

Zgłoszony podczas sekwencji wejściowych jest null.

Wartość zwracana

Sekwencja wynik.

Uwagi

Ta funkcja o nazwie DistinctBy w skompilowane zestawy.Jeżeli języka, niż F# lub przez odbicie, uzyskują dostęp do funkcji, należy użyć tej nazwy.

Przykład

Poniższy przykład demonstruje użycie Seq.distinctBy, aby zachować tylko elementy mają różne wartości bezwzględnej sekwencji.Pierwszy element z danym wyników jest zachowywana w nowej sekwencji tak dodatnią od 1 do 5 są usuwane w kolejności od -5 do + 10.

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
  

Platformy

Windows 8, Windows 7, Windows Server 2012 Windows Server 2008 R2

Informacje o wersji

F# Core wersji biblioteki

Obsługiwane: 2.0, 4.0, przenośne

Zobacz też

Informacje

Collections.Seq — Moduł (F#)

Microsoft.FSharp.Collections — Przestrzeń nazw (F#)