Table of contents
TOC
Collapse the table of content
Expand the table of content

Map.findKey<'Key,'T> Function (F#)

Den Delimarsky|Last Updated: 8/18/2017
|
1 Contributor

Evaluates the function on each mapping in the collection and returns the key for the first mapping where the function returns true. If no such element exists, this function raises System.Collections.Generic.KeyNotFoundException.

Namespace/Module Path: Microsoft.FSharp.Collections.Map

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

Syntax

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

// Usage:
Map.findKey predicate table

Parameters

predicate Type: 'Key -> 'T ->bool

The function to test the input elements.

table Type: Map<'Key,'T>

The input map.

Exceptions

ExceptionCondition
KeyNotFoundExceptionThrown if the key does not exist in the map.

Return Value

The first key for which the predicate evaluates true.

Remarks

This function is named FindKey in compiled assemblies. If you are accessing the function from a language other than F#, or through reflection, use this name.

Example

The following example shows how to use 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

Output

With value "one", found key 1.
With value "two", found key 2.
With value 9, found key 3.
With value 25, found key 5.
Exception of type 'System.Collections.Generic.KeyNotFoundException' was thrown.

Platforms

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

Version Information

F# Core Library Versions

Supported in: 2.0, 4.0, Portable

See Also

Collections.Map Module (F#)

Microsoft.FSharp.Collections Namespace (F#)

© 2018 Microsoft