【发布时间】:2017-01-19 23:24:59
【问题描述】:
这是关于如何Filter a Dictionary 的后续问题,只有我需要过滤器不区分大小写
我有一本在 Swift 3 中填充 Pickerview 的字典。
var facilityDict: [Int: [String: String]] = [:]
17: ["id": "199", "facilitycode": "036", "location_name": "中心点 医务室"],
41:[“id”:“223”,“设施代码”:“162”, "location_name": "黑岭医疗中心"],
14:[“id”:“196”, "facilitycode": "023", "location_name": "Spinnerpark"],
20:[“身份证”: "202", "facilitycode": "048", "location_name": "教育剧院"],
30:[“id”:“212”,“设施代码”:“090”,“location_name”:“合作伙伴 医务室"],
49:[“id”:“231”,“设施代码”:“223”, "location_name": "GreenBay 行政办公室"]
字典很长。我有一个Textbox,它在数据更改时触发,我用它来创建一个搜索变量。如果有人输入“ar”,我想过滤字典中包含字符“ar”的所有内容,以便我可以使用原始大字典列表中更小的子部分重置选取器列表。
过滤器
let filteredDictionaries = facilityDict.filter{$0.value.contains(where: {$0.value.contains("ar")})}.map{$0.value}
似乎可以很好地过滤字典,但是我需要搜索不区分大小写。我可以设置哪些选项来将过滤器显示更改为不区分大小写?
【问题讨论】:
-
知道了。所以在这个例子中它是
let filteredDict = self.sharedDataVal.departmentDict.filter{$0.value.contains(where: {($0.value.range(of: srchval, options: .caseInsensitive) != nil)})}.map{$0.value}