所以我得到了以下代码:
var myDic = [String: Customer]()
let s1 = Customer("nameee", "email1")
let s2 = Customer("nameee2", "email2")
let s3 = Customer("nameee3", "email3")
myDic[s1.name] = s1
myDic[s2.name] = s2
myDic[s3.name] = s3
如何从字典中选择随机元素?我想我应该使用arc4random_uniform,但找不到任何文档。
答案 0 :(得分:25)
你必须施展一些东西,但这似乎有效。
var dict:[String:Int] = ["A":123, "B": 234, "C": 345]
let index: Int = Int(arc4random_uniform(UInt32(dict.count)))
let randomVal = Array(dict.values)[index] # 123 or 234 or 345
基本上,生成零和总项目数之间的随机索引值。将字典的值作为数组获取,然后获取随机索引。
您甚至可以将其包装在扩展程序中以便于访问。
答案 1 :(得分:1)
Swift 4.2+(Xcode 10+)引入了两种简单的可能性。
let randomVal = myDict.values.randomElement()
let randomVal = myDict.randomElement().value
答案 2 :(得分:0)
Swift 5+(Xcode 12+)还引入了随机化字典 键
let randomVal = myDict.randomElement()?.key