我想检查字典中的任何值中是否存在字符串
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)
| 归档时间: |
|
| 查看次数: |
11471 次 |
| 最近记录: |