Partager via


Seq.filter<'T>, fonction (F#)

Retourne une nouvelle collection contenant uniquement les éléments de la collection pour lesquels le prédicat donné retourne la valeur true.

Espace de noms/Chemin du module : Microsoft.FSharp.Collections.Seq

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

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

// Usage:
Seq.filter predicate source

Paramètres

  • predicate
    Type : 'T -> bool

    Fonction permettant de tester si chaque élément de la séquence d'entrée doit être inclus dans la sortie.

  • source
    Type : seq<'T>

    Séquence d'entrée.

Exceptions

Exception

Condition

ArgumentNullException

Levée lorsque la séquence d'entrée a la valeur Null.

Valeur de retour

Séquence de résultat.

Notes

La séquence retournée peut être passée entre les threads en toute sécurité. Toutefois, les valeurs IEnumerator individuelles générées à partir de la séquence retournée ne doivent pas être accessibles simultanément. La séquence est évaluée paresseusement. Par conséquent, les effets sont différés jusqu'à ce qu'elle soit énumérée.

Cette fonction se nomme Filter dans les assemblys compilés. Si vous accédez à la fonction à partir d'un langage autre que F# ou par réflexion, utilisez ce nom.

Exemple

Le code suivant montre l'utilisation de Seq.filter pour filtrer une séquence infinie de nombres aléatoires pour sélectionner uniquement les chiffres pairs.

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 ""

Résultat de l'exemple

  

Plateformes

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

Informations de version

Versions de bibliothèque principale F#

Prise en charge dans : 2,0, 4,0, portables

Voir aussi

Référence

Collections.Seq, module (F#)

Microsoft.FSharp.Collections, espace de noms (F#)