随机数 从一个记录集中生成一个随机数,该怎么实现?
记录集: 0->9;a->z;A->Z

解决方案 »

  1.   

    /// <summary>
    /// 从定义的库中去设定的个数的随机字符串
    /// </summary>
    /// <param name="passchars">字符串库</param>
    /// <param name="pwdlen">随机数的数目</param>
    /// <returns>随机字符串</returns>
    public static string MakeRandChars(string passchars,int pwdlen)
    {
    //string passchars="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
    string BmpStr = "";
    int iRandNum;
    Random rnd = new Random();
    for(int i=0;i<pwdlen;i++)
    {
    iRandNum = rnd.Next(passchars.Length);
    BmpStr += passchars[iRandNum];
    }
    return BmpStr;
    }
      

  2.   

    0-9 new System.Random().Next(10)
    A-Z
    int t=new System.Random().Next(65,90);
    char c=(char)t;
    a-z
    int t=new System.Random().Next(97,122);
    char c=(char)t;
      

  3.   

    foyuan()回答的很好
    0-9 new System.Random().Next(10)
    A-Z
    int t=new System.Random().Next(65,90);
    char c=(char)t;
    a-z
    int t=new System.Random().Next(97,122);
    char c=(char)t;
      

  4.   

    到底是要数字还是字符串?如果是字符串mylocoy() 已经帮你实现了
    如果是数字那总得有个要求吧
      

  5.   

    /// <summary>
            /// 生成随机数
            /// </summary>
            /// <param name="iCnt"></param>
            /// <returns></returns>
            public static string getRandom(int iCnt)
            {
                string allChar = "a,b,c,d,e,f,g,h,j,k,l,m,n,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,J,K,L,M,N,P,Q,R,S,T,U,V,W,X,Y,Z,2,3,4,5,6,7,8,9";
                string[] allCharArray = allChar.Split(',');
                string randomCode = "";
                int temp = -1;
                Random random = new Random(); ;
                for (int i = 0; i < iCnt; i++)
                {
                    if (temp != -1)
                    {
                        random = new Random(i * temp * ((int)DateTime.Now.Ticks));
                    }
                    int t = random.Next(56);
                    if (temp == t)
                    {
                        return CreateRandomCode(iCnt);
                    }
                    temp = t;
                    randomCode += allCharArray[t];
                }
                return randomCode;        }        /// <summary>
            /// 生成一个字母
            /// </summary>
            /// <param name="iCnt"></param>
            /// <returns></returns>
            private static string CreateRandomCode(int iCnt)
            {
                string allChar = "a,b,c,d,e,f,g,h,j,k,l,m,n,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,J,K,L,M,N,P,Q,R,S,T,U,V,W,X,Y,Z,2,3,4,5,6,7,8,9";
                string[] allCharArray = allChar.Split(',');
                int i = 100;
                while (i > 55)
                {
                    i = Convert.ToInt32(DateTime.Now.ToString("ffffff").Substring(4, 2));
                }
                return allCharArray[i];
            }