Partager via


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

Compare deux séquences à l'aide de la fonction de comparaison donnée, élément par élément.

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

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

// Signature:
Seq.compareWith : ('T -> 'T -> int) -> seq<'T> -> seq<'T> -> int

// Usage:
Seq.compareWith comparer source1 source2

Paramètres

  • comparer
    Type : 'T -> 'T -> int

    Fonction qui prend un élément de chaque séquence et qui retourne un int. Si elle prend une valeur différente de zéro, l'itération est arrêtée et cette valeur est retournée.

  • source1
    Type : seq<'T>

    Première séquence d'entrée.

  • source2
    Type : seq<'T>

    Seconde séquence d'entrée.

Exceptions

Exception

Condition

ArgumentNullException

Levée lorsque l'une des séquences d'entrée a la valeur Null.

Valeur de retour

Retourne le premier résultat différent de zéro de la fonction de comparaison. Si la fin d'une séquence est atteinte, retourne -1 si la première séquence est la plus courte et 1 si c'est l'inverse.

Notes

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

Exemple

L'exemple suivant illustre l'utilisation de Seq.compareWith pour comparer deux séquences à l'aide d'une fonction de comparaison personnalisée.

let sequence1 = seq { 1 .. 10 }
let sequence2 = seq { 10 .. -1 .. 1 }

// Compare two sequences element by element. 
let compareSequences = Seq.compareWith (fun elem1 elem2 ->
    if elem1 > elem2 then 1
    elif elem1 < elem2 then -1
    else 0) 

let compareResult1 = compareSequences sequence1 sequence2
match compareResult1 with
| 1 -> printfn "Sequence1 is greater than sequence2."
| -1 -> printfn "Sequence1 is less than sequence2."
| 0 -> printfn "Sequence1 is equal to sequence2."
| _ -> failwith("Invalid comparison result.")
  

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