如何按字典的键对字典按数组中列出的顺序排序?参见示例:
字典排序:
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中查看值历史记录以正确的顺序显示所有内容时,生成的字典似乎是随机的。
如Tiago所述,Dictionary
按定义,a没有顺序。它本质上是键到值的映射。我将推荐两种方法之一。
如果您希望获得的订单是手动的,那么您的问题就会显现出来。我将创建一个数组来保存有序键。然后,在您需要的任何时候,您都可以遍历数组(顺序)并打印出字典中找到的所有值。它们将使用有序的键数组固有地打印出来。
如果排序不是通过编程进行的,则可以通过执行来获取对所有键的引用myDictionary.keys.array
。然后,您可以对数组进行排序,然后再次遍历数组并从字典中获取值。
例子:
let myKeys = myDictionary.keys.array
// sort the keys
for key in myKeys {
println(myDictionary[key])
}
希望能有所帮助。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句