Partilhar via


Seq.compareWith <'T>. Função (F#)

Compara duas seqüências usando a função de comparação de determinado, elemento por elemento.

Caminho do namespace/módulo: Microsoft.FSharp.Collections.seq

Assembly: FSharp.Core (em FSharp.Core.dll)

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

// Usage:
Seq.compareWith comparer source1 source2

Parâmetros

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

    Uma função que leva a um elemento de cada seqüência e retorna um int. Se for avaliada como uma iteração de valor diferente de zero é interrompida e esse valor é retornado.

  • source1
    Tipo: SEQ<'T>

    A primeira seqüência de entrada.

  • source2
    Tipo: SEQ<'T>

    A segunda seqüência de entrada.

Exceções

Exceção

Condição

ArgumentNullException

Lançada quando uma das seqüências de entrada for nulo.

Valor de retorno

Retorna o primeiro resultado diferente de zero a partir da função de comparação. Se o final de uma seqüência for atingido e ela retorna -1 se a primeira seqüência é menor e um 1 se a segunda seqüência é menor.

Comentários

Esta função é chamada de CompareWith em módulos (assemblies) compilados. Se você estiver acessando a função de um.NET de idioma diferente, por exemplo, F#, ou através de reflexão, usar este nome.

Exemplo

O exemplo a seguir demonstra o uso de Seq.compareWith para comparar duas seqüências usando uma função de comparação personalizada.

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

Plataformas

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

Informações sobre versão

O tempo de execução F#

Compatível com: 2.0, 4.0

Silverlight

Compatível com: 3

Consulte também

Referência

Módulo de Collections.SEQ (F#)

Microsoft.FSharp.Collections Namespace (F#)