Sdílet prostřednictvím


SEQ.compareWith, <'T> Funkce (F#)

Porovná dvě sekvence pomocí funkce porovnání daný element po elementu.

Cesta k oboru názvů nebo modul: Microsoft.FSharp.Collections.Seq

Sestavení: FSharp.Core (v FSharp.Core.dll)

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

// Usage:
Seq.compareWith comparer source1 source2

Parametry

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

    Funkce, která využívá prvek z každé řady a vrátí int.Pokud je vyhodnocen jako nenulová hodnota iterace zastavena a daná hodnota vrácena.

  • source1
    Typ: SEQ.<'T>

    První vstupní sekvence.

  • source2
    Typ: SEQ.<'T>

    Druhý vstupní sekvence.

Výjimky

Výjimka

Podmínka

ArgumentNullException

Při vyvolání buď vstupní sekvence je null.

Vrácená hodnota

Vrátí první nenulový výsledek funkce porovnání.Pokud je dosaženo konce sekvence vrátí -1, pokud je první sekvence kratší a 1 Pokud druhá řada je kratší.

Poznámky

Tato funkce se nazývá CompareWith v kompilovaný sestavení.Pokud přistupujete k funkci .net jazyku než F# nebo prostřednictvím reflexe, tento název použijte.

Příklad

Následující příklad ukazuje použití Seq.compareWith k porovnání dvou řad pomocí porovnání vlastní funkce.

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

Platformy

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

Informace o verzi

F# základní verze knihovny

Podporovány: 2.0, 4.0, přenosné

Viz také

Referenční dokumentace

Collections.SEQ modul (F#)

Obor názvů Microsoft.FSharp.Collections (F#)