Ich möchte ein Wörterbuch in Swift sortieren. Ich habe ein Wörterbuch wie:
"A" => Array[]
"Z" => Array[]
"D" => Array[]
usw. Ich möchte, dass es so ist
"A" => Array[]
"D" => Array[]
"Z" => Array[]
etc.
Ich habe viele Lösungen für SO ausprobiert, aber niemand hat für mich gearbeitet. Ich verwende XCode6 Beta 5 und einige geben Compilerfehler und einige Lösungen geben Ausnahmen. Also jeder, der die Arbeitskopie der Wörterbuchsortierung posten kann.
swift
sorting
dictionary
Aleem Ahmad
quelle
quelle
sortedKeys
Funktion.Antworten:
BEARBEITEN:
Das sortierte Array aus dem obigen Code enthält nur Schlüssel, während Werte aus dem ursprünglichen Wörterbuch abgerufen werden müssen. Es handelt sich jedoch
'Dictionary'
auch um ein'CollectionType'
(Schlüssel-, Wert-) Paar, und wir können die globale'sorted'
Funktion verwenden, um ein sortiertes Array zu erhalten, das sowohl Schlüssel als auch Werte enthält, wie folgt:EDIT2: Die monatlich wechselnde Swift-Syntax wird derzeit bevorzugt
Das Globale
sorted
ist veraltet.quelle
let sortedKeys = dictionary.keys.sorted()
Swift 2.0
Aktualisierte Version der Antwort von Ivica M:
Swift 3
Beachten:
Seien Sie nicht überrascht, dass der resultierende Typ eher ein Array als ein Wörterbuch ist. Wörterbücher können nicht sortiert werden ! Der resultierende Datentyp ist ein sortiertes Array, genau wie in der Antwort von @ Ivica.
quelle
Binary operator > can not be compared to two
Any'-Operanden. Downcasting funktioniert auch nichtWenn Sie sowohl die Schlüssel als auch die Werte in einer nach Schlüssel sortierten Reihenfolge durchlaufen möchten, ist dieses Formular recht prägnant
quelle
sort
undsorted
. Swift 2:sort
ist gewordensortInPlace
undsorted
ist gewordensort
.In Swift 4 können Sie es intelligenter schreiben:
quelle
Ich habe alles versucht, kurz gesagt, alles was Sie brauchen ist
quelle
Für Swift 4 hat Folgendes für mich funktioniert:
quelle
Dies ist eine elegante Alternative zum Sortieren des Wörterbuchs selbst:
Ab Swift 4 & 5
quelle
In Swift 5 , um Dictionary nach KEYS zu sortieren
Um das Wörterbuch nach WERTEN zu sortieren
quelle
Bei Swift 3 gibt die folgende Sortierung das sortierte Wörterbuch nach Schlüsseln zurück:
quelle
"sortiert" in iOS 9 & xcode 7.3, Swift 2.2 ist unmöglich, ändern Sie "sortiert" in "sortieren" wie folgt:
quelle
Array
vonTuples
, keinDictionary
Swift 5
Geben Sie Ihr Wörterbuch ein, das Sie alphabetisch nach Schlüsseln sortieren möchten.
dict.sorted (by: {$ 0.key <$ 1.key}) gibt selbst ein Tupel (Wert, Wert) anstelle eines Wörterbuchs [Wert: Wert] zurück. Daher analysiert die for-Schleife das Tupel, um es als Wörterbuch zurückzugeben. Auf diese Weise fügen Sie ein Wörterbuch ein und erhalten ein Wörterbuch zurück.
quelle
Schnelle 4 & 5
Zum Sortieren von Zeichenfolgenschlüsseln:
Beispiel:
quelle
Für Swift 3 hat Folgendes bei mir funktioniert und die Swift 2-Syntax hat nicht funktioniert:
quelle
sortedDict
? Was istmenu
? Dieser Code scheint ebenfalls nicht gültig zu sein.Swift 3 ist sortiert (nach: <)
quelle