在swift词典中找到一个包含字符串的键

在swift词典中找到一个包含字符串的键,第1张

概述我有一个[String:String]字典.我想获得与包含字符串“S”的任何键相关联的值.订单无关紧要. 这很简单:只需获取所有键,迭代,返回第一个匹配条件. 但是,我想用一种快速优雅的方法来做到这一点.使用过滤器或地图功能的东西.这就是我迷路的地方…… 由于您只对任何匹配值感兴趣, 您可以使用indexOf()方法查找第一个匹配项 字典条目.这是因为  字典是键/值对的集合. 斯威夫特2: le 我有一个[String:String]字典.我想获得与包含字符串“S”的任何键相关联的值.订单无关紧要.

这很简单:只需获取所有键,迭代,返回第一个匹配条件.

但是,我想用一种快速优雅的方法来做到这一点.使用过滤器或地图功能的东西.这就是我迷路的地方……

由于您只对任何匹配值感兴趣,
您可以使用indexOf()方法查找第一个匹配项
字典条目.这是因为
字典是键/值对的集合.

斯威夫特2:

let dict = ["foo": "bar","PQRS": "baz"]let searchTerm = "S"if let index = dict.indexOf({ (key,_) in key.containsstring(searchTerm) }) {    let value = dict[index].1    print(value)} else {    print("no match")}

一旦找到匹配的键,谓词就返回true
并且枚举停止.索引是一个“字典索引”
可以直接用于获取相应的字典条目.

对于不区分大小写的键搜索,请替换谓词

{    (key,_) in  key.rangeOfString(searchTerm,options: .CaseInsensitiveSearch) != nil}

在Swift 3中,您可以使用first(where :)来查找第一个匹配项
元素,这可以保存一个字典查找:

if let entry = dict.first(where: { (key,_) in key.contains(searchTerm) }) {    print(entry.value)} else {    print("no match")}

对于不区分大小写的键搜索,_) in key.range(of: searchTerm,options: .caseInsensitive) != nil} 总结

以上是内存溢出为你收集整理的在swift词典中找到一个包含字符串的键全部内容,希望文章能够帮你解决在swift词典中找到一个包含字符串的键所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1026988.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存