Swift の辞書から特定のインデックスのキーを取得するにはどうすればよいですか? 質問する

Swift の辞書から特定のインデックスのキーを取得するにはどうすればよいですか? 質問する

Swift でがありDictionary、特定のインデックスのキーを取得したいと考えています。

var myDict : Dictionary<String,MyClass> = Dictionary<String,MyClass>()

キーを反復処理してログに記録できることはわかっています

for key in myDict.keys{
    NSLog("key = \(key)")
}

しかし、不思議なことに、このようなことは不可能です。なぜでしょうか?

var key : String = myDict.keys[0]

ベストアンサー1

これは、keysが を返すためでありLazyMapCollection<[Key : Value], Key>、 で添字付けすることはできません。これを処理する 1 つの方法は、辞書の を、添字付けする整数だけInt進めることです。次に例を示します。startIndex

let intIndex = 1 // where intIndex < myDictionary.count
let index = myDictionary.index(myDictionary.startIndex, offsetBy: intIndex)
myDictionary.keys[index]

別の解決策としては、入力として配列を初期化しkeys、結果に整数の添え字を使用することです。

let firstKey = Array(myDictionary.keys)[0] // or .first

辞書は本質的に順序付けられていないため、特定のインデックスのキーが常に同じであるとは期待しないでください。

おすすめ記事