日期:2014-05-17  浏览次数:20431 次

生成随机数???
private string CreateRandomNum(int NumCount)
  {
  string allChar = "0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,W,X,Y,Z";
  string[] allCharArray = allChar.Split(',');
  string randomNum = "";
  int temp = -1;
Random rand = new Random();
for (int i = 0; i < NumCount; i++)
{
if (temp != -1)
{
rand = new Random(i * temp * ((int)DateTime.Now.Ticks));
}
int t = rand.Next(35);
if (temp == t)
{
return CreateRandomNum(NumCount);
}
temp = t;
randomNum += allCharArray[t];
}
这段是什么意思??  
  return randomNum;
  }

------解决方案--------------------
http://www.cnblogs.com/liangdelin/archive/2012/04/30/2477055.html
------解决方案--------------------
随机产生一个由10个阿拉伯数字、26个英文大写字母组成的,长度为NumCount的字符串。
------解决方案--------------------
更正一下,是25个英文字母,不包含字母V
------解决方案--------------------
public string GetCode(int num)
{
string[] source={'0','1','2','3','4','5'.....'Z'};
string code="";
Random rd=new Random();
for(int i=0;i<num;i++)
{
code+=source[rd.Next(0,source.Length-1)];
}
return code;

}
------解决方案--------------------
先创立一个 字符集合的 数组。

C# code
for(int i=0;i<n n是你要生成几位;i++)
{
然后用 Random rnd = new Random()

然后 数组[rnd.next(0,数组.Length)]
}

------解决方案--------------------
先把temp初始化为allCharArray数组合法下标以外的值,-1
然后产生一个新的整数作为随机数发生器的“种子”,产生一个0~34的整数,做为下标从数组中取出一个字符,添加到最终结果randomNum的后面。

大意就是这样吧。
------解决方案--------------------
C# code

        /// <summary>
        /// 产生一个指定长度的随机字符串
        /// 由0-9,A-Z组成(除V)
        /// </summary>
        /// <param name="NumCount">随机字符串长度</param>
        /// <returns>随机字符串</returns>
        private string CreateRandomNum(int NumCount)
        {
            //定义字符来源
            string allChar = "0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,W,X,Y,Z";
            string[] allCharArray = allChar.Split(',');//将字符来源转换成数组,方便获取每一位
            string randomNum = "";//随机字符串
            int temp = -1;//是否重新生成随机种子

            Random rand = new Random();
            for (int i = 0; i < NumCount; i++)
            {
                //除了第一次
                if (temp != -1)
                {
                    //动态自定随机种子
                    rand = new Random(i * temp * ((int)DateTime.Now.Ticks));
                }
                //生成一个小于35的非负随机数(因为字符源数组最大小标为34)
                int t = rand.Next(35);

                //如果此次生成的随机数和上次一样,则重新调用本方法重新开始生成。
                if (temp == t)
                {
                    return CreateRandomNum(NumCount);
                }

                temp = t;//记录当前产生的随机数(用来判断是否为第一次和判断是否和上一次重复)

                //获取并记录产生的随机字符
                randomNum += allCharArray[t];
            }
            return randomNum;
        }

------解决方案--------------------
那个连接解释很详细