Udostępnij za pośrednictwem


Seq.filter<'T> — Funkcja (F#)

Zwraca nową kolekcję, zawierające elementy kolekcji, dla którego dany predykat zwraca true.

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

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

// Signature:
Seq.filter : ('T -> bool) -> seq<'T> -> seq<'T>

// Usage:
Seq.filter predicate source

Parametry

  • predicate
    Type: 'T ->bool

    Funkcja testowania, czy każdy element w sekwencji wejściowych powinna być włączona w danych wyjściowych.

  • 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

Sekwencja zwracane mogą być przekazywane między wątki bezpiecznie.Jednakże poszczególnych IEnumerator wygenerowany z sekwencji zwracane wartości nie jest dostępna jednocześnie.Sekwencja lazily jest oceniane.Dlatego skutki są opóźnione aż jest wyliczany.

Ta funkcja o nazwie Filter 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 kod ilustruje użycie Seq.filter do filtrowania infinite sekwencji liczb losowych, aby zaznaczyć tylko parzystą.

let random = new System.Random()
Seq.initInfinite (fun _ -> random.Next())
|> Seq.filter (fun x -> x % 2 = 0)
|> Seq.take 5
|> Seq.iter (fun elem -> printf "%d " elem)
printfn ""

Przykładowe dane wyjściowe

  

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#)