Свифт - Сортировка Dict из Strings и Ints - PullRequest
0 голосов
/ 11 ноября 2018

У меня есть диктовка, как показано: [String: Int]

Я хочу иметь возможность сортировать целые числа в словаре от наибольшего к наименьшему и сохранять ключ с номером. Везде, где я смотрел, написано, что вы можете сортировать только такой массив.

Спасибо!

1 Ответ

0 голосов
/ 11 ноября 2018

Вы не можете самостоятельно отсортировать словарь.

Вам нужна отдельная структура данных, которая содержит отсортированное представление вашего словаря. Например:

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.sorted и закрытия в Swift .

Примечание : отсортированный Array кортежей не зависит от словаря, и при удалении или добавлении некоторых элементов изменение НЕ отражается в обеих структурах данных. Вам придется сделать это вручную.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...