Compartilhar via


Map.findKey <' chave, T' > Função (F#)

Avalia a função de cada mapeamento na coleção e retorna a chave para o primeiro mapeamento de onde a função retornará true. Se nenhum elemento tal existir, essa função gera KeyNotFoundException.

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

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

// Signature:
Map.findKey : ('Key -> 'T -> bool) -> Map<'Key,'T> -> 'Key (requires comparison)

// Usage:
Map.findKey predicate table

Parâmetros

  • predicate
    Tipo: 'Key -> 'T -> bool

    A função para testar os elementos de entrada.

  • table
    Tipo: Mapa<'Key,'T>

    O mapa de entrada.

Exceções

Exceção

Condição

KeyNotFoundException

Lançada se a chave não existe no mapa.

Valor de retorno

A primeira chave para o qual o predicado é avaliada true.

Comentários

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

Exemplo

O exemplo a seguir mostra como usar Map.findKey.

let findKeyFromValue findValue map =
    printfn "With value %A, found key %A." findValue (Map.findKey (fun key value -> value = findValue) map)
let map1 = Map.ofList [ (1, "one"); (2, "two"); (3, "three") ]
let map2 = Map.ofList [ for i in 1 .. 10 -> (i, i*i) ]
try
    findKeyFromValue "one" map1
    findKeyFromValue "two" map1
    findKeyFromValue 9 map2
    findKeyFromValue 25 map2
    // The key is not in the map, so the following line throws an exception.
    findKeyFromValue 0 map2
with
     :? System.Collections.Generic.KeyNotFoundException as e -> printfn "%s" e.Message

Saída

            

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.Map (F#)

Microsoft.FSharp.Collections Namespace (F#)

Histórico de alterações

Date

History

Motivo

Agosto de 2010

Exemplo de código adicionado.

Aprimoramento de informações.