我有一个类型列表System.IO.FileInfo
,我想随机化列表。我想我记得看到过类似的东西list.randomize()
不久前,但我找不到我在哪里见过的。
我第一次涉足这个领域,得到了这个函数:
Private Shared Sub GetRandom(ByVal oMax As Integer, ByRef currentVals As List(Of Integer))
Dim oRand As New Random(Now.Millisecond)
Dim oTemp As Integer = -1
Do Until currentVals.Count = IMG_COUNT
oTemp = oRand.Next(1, oMax)
If Not currentVals.Contains(oTemp) Then currentVals.Add(oTemp)
Loop
End Sub
我向它发送我希望它迭代到的最大值,以及对我想要其中的随机内容的列表的引用。变量IMG_COUNT
在脚本中进一步设置,指定我想要显示多少随机图像。
谢谢大家,我很感激:D
在这里查看 Fisher-Yates 洗牌算法:http://en.wikipedia.org/wiki/Knuth_shuffle http://en.wikipedia.org/wiki/Knuth_shuffle
该网站的主要霸主在这里进行了更简洁的讨论:http://www.codinghorror.com/blog/archives/001015.html http://www.codinghorror.com/blog/archives/001015.html
博客文章中有一个简单的 C# 实现,应该很容易更改为 VB.NET
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)