Swift 检查字典键是否包含字符串

Swift 检查字典键是否包含字符串,swift,dictionary,Swift,Dictionary,假设我有以下字典[“莱昂内尔·梅西”:“170cm”] 若我只知道密钥字符串的一部分,是否有可能找到那个对键值。换句话说,如果我只有字符串“Lione”,是否有可能找到上面提到的键值对 编辑: 以下是使用Swift2的新捷径: func findPartOfString(partOfKey: String, myDict: Dictionary) -> String { for (key, value) in myDict where key.containsString(part

假设我有以下字典[“莱昂内尔·梅西”:“170cm”]

若我只知道密钥字符串的一部分,是否有可能找到那个对键值。换句话说,如果我只有字符串“Lione”,是否有可能找到上面提到的键值对

编辑:

以下是使用Swift2的新捷径:

func findPartOfString(partOfKey: String, myDict: Dictionary) -> String {
    for (key, value) in myDict where key.containsString(partOfString) {
        return value
    }
    return null
输出

找到匹配项:(莱昂内尔·梅西=>170cm)


是的,您可以访问密钥并搜索匹配项。你需要一个不同的数据结构。比如一个。如果没有太多的值,也可以搜索所有的值。谢谢,我要测试一下。@njan。。。luk2302提供的答案是swift希望开发人员使用的更多类型。它减少了“for”循环的使用,使代码更加简洁明了。@Karthik,虽然我很欣赏这种方式,但我不确定我是否同意“swift”所希望的。请参阅我的更新答案,了解swift 2中循环的全新用法。似乎这正是为这种情况而做的。@Karthik和Tim-在我看来,这只是个人喜好。@luk2302。。。可能但正如蒂姆所说……现在我们有太多的选择来做同样的事情,我们可能不得不想出每种方法都可以使用的情况!:P
func findPartOfString(partOfKey: String, myDict: Dictionary) -> String {
    for (key, value) in myDict where key.containsString(partOfString) {
        return value
    }
    return null
let filter = "Lionel"
let dict = ["Lionel Messi" : "170cm", "Me" : "Taller"]
let result = dict.keys.filter { $0.containsString(filter) }
if let first = result.first {
    print("match found: (\(first) => \(dict[first]!))")
}