C#中有个Random类可以非常方便的产生一个随机数,但是在使用中你会发现这个类并不是特别好用,偶尔会一直提供同一个数,这里我将介绍另一个获取随机数的方法。
GUID,全局唯一标识符。是一种由算法生成的唯一标识,通常表示成32个十六进制数字(0-9,A-F)组成的字符串,如:{21EC2020-3AEA-1069-A2DD-08002B30309D},它实质上是一个128位长的二进制整数。GUID的主要目的是产生完全唯一的数字。在理想情况下,任何计算机和计算机集群都不会生成两个相同的GUID。GUID的总数也足够大,达到了2128(3.4×1038)个,所以随机生成两个相同GUID的可能性是非常小的,但并不为0。所以,用于生成GUID的算法通常都加入了非随机的参数(如时间),以保证这种重复的情况不会发生。(以上介绍来自维基百科)
实现方法很简单
string ra = Guid.NewGuid().ToString();//生成一个GUID string[] sArray = ra.Split('-');//将GUID已‘-’分割成数组 int raNum = Convert.ToInt32(sArray[1].ToString(), 16) % 3960;//调用数组内的数据转成int类型
sArray的下标取值范围0-6,由于我需要一个0-3960的随机数,所以我对3960取余。