字典包含一定值swift 3

Jev*_*les 8 dictionary swift3

我想检查字典中的任何值中是否存在字符串

Dictionary<String, AnyObject>
Run Code Online (Sandbox Code Playgroud)

我知道数组有.contains所以我会认为字典也有.当我开始输入contains时,Xcode告诉我使用以下内容

countDic.contains(where: { ((key: String, value: AnyObject)) -> Bool in
            <#code#>
        })
Run Code Online (Sandbox Code Playgroud)

我只是不明白如何使用这个我知道里面我需要返回一个Bool,但我不明白我在哪里放什么String我正在寻找.任何帮助都会很棒.

Mar*_*n R 10

contains(where:) 检查集合中的任何元素是否满足给定谓词,因此在您的情况下它将是

let b = countDic.contains { (key, value) -> Bool in
    value as? String == givenString
}
Run Code Online (Sandbox Code Playgroud)

或者,直接应用于values字典视图:

let b = countDic.values.contains { (value) -> Bool in
    value as? String == givenString
}
Run Code Online (Sandbox Code Playgroud)

在这两种情况下,都必须(可选地)将其转换AnyObject 为a String以便将其与给定的字符串进行比较.

使用字典类型会稍微容易 Dictionary<String, String>一些Equatable,因为字符串是,并且contains(element:)可以使用该方法:

let b = countDic.values.contains(givenString)
Run Code Online (Sandbox Code Playgroud)