Swift-字符串和整数排序字典

时间:2018-11-11 09:14:03

标签: swift xcode sorting dictionary

我有一个字典,如下所示:[String:Int]

我希望能够将字典中的整数从最大到最小排序,并保持键与数字相同。我看过的所有地方都说只能对这样的数组进行排序。

谢谢!

1 个答案:

答案 0 :(得分:0)

您不能对字典本身进行排序。

您需要一个单独的数据结构,其中包含字典的排序表示。例如:

let dict = ["A": 1, "B": 2]
let sortedTuples1 = dict.sorted{ $0.value < $1.value }
let sortedTuples2: [(String, Int)] = dict.sorted(by: { (element0, element1) in
    return element0.value < element1.value
})

第一个版本sortedTuples1只是sortedTuples2的简短语法。另请参见Sequence.sortedclosures in Swift

注意:元组的排序Array与字典无关,并且如果删除或添加一些元素,则更改不会同时反映在两个数据结构中。您将必须手动执行此操作。