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

Informazioni sulla versione

F# Runtime

Supportato in: 2.0, 4.0

Silverlight

Supportato in: 3

Vedere anche

Riferimenti

Modulo Collections.Seq (F#)

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