Condividi tramite


Funzione Seq.compareWith<'T> (F#)

Confronta due sequenze utilizzando la funzione di confronto specificata, elemento per elemento.

Percorso spazio dei nomi/modulo: 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

Parametri

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

    Funzione che utilizza un elemento da ogni sequenza e restituisce un Integer. Se restituisce un'iterazione con valore diverso da zero, viene arrestata e restituisce il valore specifico.

  • source1
    Tipo: seq<'T>

    Prima sequenza di input.

  • source2
    Tipo: seq<'T>

    Seconda sequenza di input.

Eccezioni

Eccezione

Condizione

ArgumentNullException

Generata se una delle sequenze di input è Null.

Valore restituito

Restituisce il primo risultato diverso da zero dalla funzione di confronto. Se viene raggiunta la fine di una sequenza, viene restituito un valore -1 se la prima sequenza è più breve e un valore 1 se lo è la seconda sequenza.

Note

Questa funzione è denominata CompareWith negli assembly compilati. Utilizzare questo nome se si accede alla funzione da un linguaggio .NET diverso da F# o tramite reflection.

Esempio

Nell'esempio riportato di seguito viene illustrato l'utilizzo di Seq.compareWith per confrontare due sequenze utilizzando una funzione di confronto personalizzata.

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

Piattaforme

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

Informazioni sulla versione

Versioni della libreria di base F#

Supportato in: 2,0, 4,0, portabile

Vedere anche

Riferimenti

Modulo Collections.Seq (F#)

Spazio dei nomi Microsoft.FSharp.Collections (F#)