【发布时间】:2018-03-03 14:47:12
【问题描述】:
嘿,我在这里看到了一些非常好的问题。关于如何将数组转换为字典,但问题是不保持相同的顺序示例:
list = ["test", "test2", "test3"]
输出:
listNewFromExt = ["test": "test","test3": "test3", "test2": "test2"]
基本上 test3 正在与 test2 交换位置
代码:
let listNewFromExt = list.toDictionary{($0, $0)}
extension Sequence {
public func toDictionary<K: Hashable, V>(_ selector: (Iterator.Element) throws -> (K, V)?) rethrows -> [K: V] {
var dict = [K: V]()
for element in self {
if let (key, value) = try selector(element) {
dict[key] = value
}
}
return dict
}
}
另外,如果您能告诉我如何将 .values 设为“nil”而不是密钥的副本,那就太好了。
【问题讨论】:
-
字典根据定义是无序的,如果你需要一个有序的集合,你不应该使用字典。
标签: swift