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 7, Windows Vista SP2, Windows XP SP3, Windows XP x64 SP2, Windows Server 2008 R2, Windows Server 2008 SP2, Windows Server 2003 SP2

Informations de version

Runtime F#

Pris en charge dans : 2.0, 4.0

Silverlight

Prise en charge dans : 3

Voir aussi

Référence

Collections.Seq, module (F#)

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