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

更新:2010 年 8 月

计算集合中每个映射上的函数并且在函数返回 true 的地方返回第一个映射的键。 如果不存在此类元素,则该函数引发 KeyNotFoundException

命名空间/模块路径: Microsoft.FSharp.Collections.Map

程序集:FSharp.Core(在 FSharp.Core.dll 中)

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

// Usage:
Map.findKey predicate table

参数

  • predicate
    类型:'Key -> 'T -> bool

    要测试输入元素的函数。

  • table
    类型:Map<'Key,'T>

    输入映射。

异常

异常

Condition

KeyNotFoundException

在映射中不存在该键时引发。

返回值

谓词为其计算为 true 的第一个键。

备注

此函数在编译的程序集中名为 FindKey。 如果从 F# 以外的语言中访问函数,或通过反射访问成员,请使用此名称。

示例

下面的示例显示如何使用 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

            

平台

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

版本信息

F# 运行时

受以下版本支持:2.0、4.0

Silverlight

受以下版本支持:3

请参见

参考

Collections.Map 模块 (F#)

Microsoft.FSharp.Collections 命名空间 (F#)

修订记录

Date

修订记录

原因

2010 年 8 月

添加了代码示例。

信息补充。