Функция 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 |
---|---|
Создается, если ключ не существует в сопоставлении. |
Возвращаемое значение
Первый ключ, для которого предикат возвращает значение 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, портативное