字典如何按其键排列,按照数组中列出的顺序排序?见例:
要排序的词典:
var item = [
"itemName":"radio",
"description":"battery operated",
"qtyInStock":"12",
"countOfChildren":"5",
"isSerialized":"0"
]
应对键进行排序的顺序:
let sortOrder = [
"itemName",
"qtyInStock",
"countOfChildred",
"description",
"isSerialized"
]
我在Playground尝试了以下内容:
var sortedItem = Dictionary<String, String>()
for i in sortOrder {
sortedItem[i] = item[i]
}
在Playground中查看值历史记录时,按正确顺序显示所有内容,生成的字典看起来是随机的。
答案 0 :(得分:1)
根据定义,字典没有订单。
但是,您可以拥有array of sorted items by touples或implement your sorted dictionary。
答案 1 :(得分:1)
如Tiago所述,根据定义,Dictionary
没有订单。它本质上是键到值的映射。我会推荐两种方法中的一种。
如果你想要达到的顺序是手动的,那么你的问题就好了。我会创建一个数组来保存有序键。然后,在您需要的任何时候,您可以遍历数组(这是顺序)并打印出字典中找到的所有值。它们将使用有序的键阵列固有地打印出来。
如果排序不是以编程方式完成的,那么您可以通过myDictionary.keys.array
获取对所有键的引用。然后,您可以对数组进行排序,然后再次遍历数组并从字典中获取值。
示例:
let myKeys = myDictionary.keys.array
// sort the keys
for key in myKeys {
println(myDictionary[key])
}
希望有所帮助。