Freigeben über


Seq.compareWith<'T>-Funktion (F#)

Vergleicht zwei Sequenzen elementweise mit der angegebenen Vergleichsfunktion.

Namespace/Modulpfad: 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

Parameter

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

    Eine Funktion, die ein Element von jeder Sequenz akzeptiert und einen ganzzahligen Typ zurückgibt. Wenn die Funktion einen Wert ungleich 0 (null) ergibt, wird die Iteration angehalten, und dieser Wert wird zurückgegeben.

  • source1
    Typ: seq<'T>

    Die erste Eingabesequenz.

  • source2
    Typ: seq<'T>

    Die zweite Eingabesequenz.

Ausnahmen

Ausnahme

Bedingung

ArgumentNullException

Wird ausgelöst, wenn eine der Eingabesequenzen NULL ist.

Rückgabewert

Gibt das erste Ergebnis, das ungleich 0 (null) ist, von der Vergleichsfunktion zurück. Wenn das Ende einer Sequenz erreicht ist, wird -1 zurückgegeben, wenn die erste Sequenz kürzer ist, und 1 ist, wenn die zweite Sequenz kürzer ist.

Hinweise

Der Name dieser Funktion in kompilierten Assemblys lautet CompareWith. Verwenden Sie diesen Namen, wenn Sie in einer anderen .NET-Sprache als F# oder durch Reflektion auf die Funktion zugreifen.

Beispiel

Das folgende Beispiel veranschaulicht die Verwendung von Seq.compareWith zum Vergleichen von zwei Sequenzen mithilfe einer benutzerdefinierten Vergleichsfunktion.

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

Plattformen

Windows 7, Windows Vista SP2, Windows XP SP3, Windows XP x64 SP2, Windows Server 2008 R2, Windows Server 2008 SP2, Windows Server 2003 SP2

Versionsinformationen

F#-Runtime

Unterstützt in: 2.0, 4.0

Silverlight

Unterstützt in: 3

Siehe auch

Weitere Ressourcen

Collections.Seq-Modul (F#)

Microsoft.FSharp.Collections-Namespace (F#)