2016-01-08 53 views
1

我需要在字典中以相同順序提取字典的鍵。以相同的索引順序檢索字典中的鍵

讓我們看看下面的代碼:

let farm: [String:String] = ["a":"b", "c":"d", "e":"f", "g":"h"] 
    print(Array(farm.keys)) //printed result is ["e", "a", "g", "c"] 

有沒有辦法只提取鍵,如以下?

[ "a", "c", "e", "g" ] 

我需要按照與字典中相同的順序提取密鑰。

如果沒有辦法做到這一點,我想知道我是否可以通過索引訪問Dictionary並在該索引上檢索鍵值對。

+0

字典沒有順序,它是一個無序的集合。即使當你創建一個看似有序的字典,如'[「a」:「b」,「c」:「d」,「e」:「f」,「g」:「h」]'訂購。 – Moritz

回答

3

根據我在swift字典中的知識,他們只是管理鍵值。 爲獲得相同的順序或者你必須保存在一個索引的一個對象(鍵值)的數組中的所有值,或者你必須在創建字典時通過所有的鍵陣列

+0

聽不見這個。但是,謝謝! – Kahsn

1

字典中的鍵不排序。但你可以通過這種方式得到並整理它們:

let farm: [String:String] = ["a":"b", "c":"d", "e":"f", "g":"h"] 
let sortedKeys = Array(farm.keys).sort(<) //["a", "c", "e", "g"]