将2个数组放入一个字典中,同时保持索引

时间:2015-07-21 19:23:33

标签: ios swift ios8

我有两个单独的数组要导入到字典中。顺序非常重要,因为两个数组必须匹配索引

Dim col
col = Split(Selection.Address, "$")(1)
Dim tmp as Integer
tmp = CInt(col) + 2

3 个答案:

答案 0 :(得分:1)

字典没有特定的顺序。但是,如果两个数组的长度相同,则可以很容易地将它们一起迭代:

var dictionary = [NSString: AnyObject]()
for var index = 0; index < data.users.count; index++ {
    let img = data.img as! NSString
    dictionary[img] = data.users[index]
}

或者,正如@robertvojta建议的那样,使用zip()方法:

var dictionary = [NSString: AnyObject]()
for (user, image) in zip(data.users, data.img) {
    let img = image as! NSString
    dictionary[img] = user
}

答案 1 :(得分:0)

swift中字典中的key必须为hashable。即,不是AnyObject

假设你可以替换一些无类型的Swift数组,或像这样抛出它们:

struct MyVariables {
    var users:Array<AnyObject>
    var img:Array<String>
}

然后你可以使用首选的Swift方法迭代1个数组,并使用索引访问第二个数组:

var dictionary = Dictionary<String, AnyObject>()

for (index, element) in enumerate(MyVariables.img) {
    dictionary[element] = MyVariables.users[index]
}

答案 2 :(得分:0)

使用for循环传播数组,根据索引访问键和值各自的数组并将其添加到字典中。它非常简单,因此您可以使用它来实现目标。

我希望它会对你有所帮助!