Поделиться через


Функция Map.findKey<'Key,'T> (F#)

Вычисляет функцию для каждого сопоставления в коллекции и возвращает ключ для первого сопоставления, где функция возвращает значение 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 8, Windows 7, Windows Server 2012, Windows 2008 Server R2

Сведения о версии

Основной версии библиотеки F#

Поддерживается в: 2.0, 4.0, портативное

См. также

Ссылки

Модуль Collections.Map (F#)

Пространство имен Microsoft.FSharp.Collections (F#)