排序字典数组(swift)

时间:2016-10-05 04:06:47

标签: arrays swift dictionary

let unsorted = [{Name:Amy,age:20},{Name:Bill,age:20}]
let sortedDict = sorted(unsorted){a,b in return a.Name < b.Name}

如何根据Name键对未排序的数组进行排序?上面的代码似乎不起作用。

2 个答案:

答案 0 :(得分:1)

如果使用自定义结构而不是字典

,则排序语法(几乎)可以正常工作
struct Person {
  let name : String
  let age : Int
}

let unsortedPeople = [Person(name:"Bill", age:20), Person(name:"Amy", age:20)]

现在您可以使用sorted功能

let sortedDict = unsortedPeople.sorted{ $0.name < $1.name }

答案 1 :(得分:0)

你的问题中的字典是错误的,所以我假设你有一个像

这样的字典
let unsorted = ["Amy": Amy, "Dan": Dan, "Ben": Ben]

如果是这样,您可以按

排序
let sorted = unsorted.sort { $0.0 < $1.0 }