Skip to content

Instantly share code, notes, and snippets.

@hira22
Last active January 15, 2020 07:43
Show Gist options
  • Save hira22/1307079c4ed36a70a347dd1745202708 to your computer and use it in GitHub Desktop.
Save hira22/1307079c4ed36a70a347dd1745202708 to your computer and use it in GitHub Desktop.
DictionaryのSortは事前に配列をソートしておく
import Foundation
enum Gender {
case female
case male
case other
}
let array = [
(name: "Shun", gender: Gender.male),
(name: "Mai", gender: Gender.female),
(name: "Tomoya", gender: Gender.male),
(name: "Koji", gender: Gender.male),
(name: "Nozomi", gender: Gender.female),
(name: "Hikaru", gender: Gender.other),
(name: "Kenta", gender: Gender.male),
(name: "Nao", gender: Gender.female),
(name: "Keiko", gender: Gender.female),
]
let dictionary = Dictionary(grouping: array, by: {$0.gender})
let sortedDictionary = Dictionary(grouping: array.sorted(by: { $0.name < $1.name}), by: {$0.gender})
print("--- not sorted ------------------------")
print(dictionary[.female]!)
print("--- not sorted ------------------------")
print(dictionary[.male]!)
print("--- not sorted ------------------------")
print(dictionary[.other]!)
print("--- sorted ------------------------")
print(sortedDictionary[.female]!)
print("--- sorted ------------------------")
print(sortedDictionary[.male]!)
print("--- sorted ------------------------")
print(sortedDictionary[.other]!)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment