代码如下  生成的十条下们的随机字符串  但十条基本都是重复,  但是用VS调试时不会重复!
string html = string.Empty;
            Random ran = new Random();
            for (int i = 0; i < 10; i++)
            {
                string core = "q,w,e,r,t,y,u,i,o,p,a,s,f,g,h,j,k,l,z,x,c,v,b,n,m,Q,W,E,R,T,Y,U,I,O,P,A,S,D,F,G,H,J,K,L,Z,X,C,V,B,N,M,0,1,2,3,4,5,6,7,8,9";
                string[] strList = core.Split(',');
                string sn = string.Empty;                
                for (int j = 0; j < 10; j++)
                {
                    sn += strList[ran.Next(0,61)];
                }
                //model.Bonus_sn = sn;
                //bonus.Add(model);
                html += sn + "<br/>";
            }
            Response.Write(html);
代码修改成 成如下后正常(注意红色部分) string html = string.Empty;
            Random ran = new Random(); 
           for (int i = 0; i < 10; i++)
            {
                string core = "q,w,e,r,t,y,u,i,o,p,a,s,f,g,h,j,k,l,z,x,c,v,b,n,m,Q,W,E,R,T,Y,U,I,O,P,A,S,D,F,G,H,J,K,L,Z,X,C,V,B,N,M,0,1,2,3,4,5,6,7,8,9";
                string[] strList = core.Split(',');
                string sn = string.Empty;                
                for (int j = 0; j < 10; j++)
                {
                    sn += strList[ran.Next(0,61)];
                }
                //model.Bonus_sn = sn;
                //bonus.Add(model);
                html += sn + "<br/>";
            }
            Response.Write(html);

解决方案 »

  1.   

    try Random ra=new Random(iSeed); 
      

  2.   


    Random ran = new Random();
    的位置不一样我觉得运行是一样的但结果就不一样
      

  3.   


    string html = string.Empty;
      Random ran = new Random();
      for (int i = 0; i < 10; i++)
    string html = string.Empty;
      Random ran = new Random();  
      for (int i = 0; i < 10; i++)能解释一下怎么不一样么
      

  4.   

    看不到差别 也许只是碰巧
    Random ra=new Random(61)List<string> list=new List<string>
      for (int j = 0; j < 10; j++)
      {
          int i=ra.next();
          string aa = strList[i];
          if(list.contain(aa))
          { j--  ;     }else{list.add(aa);}
      }string result=string.join(",",list.toArray());
      

  5.   

    贴一个简单的写法:
      int numeber;
                char code;
                string sn = string.Empty;
                Random random = new Random();
                for (int i = 0; i < 10; i++)
                {
                    numeber = random.Next();
                    if (numeber % 2 == 0)
                    {
                        code = (char)('0' + (char)(numeber % 10));
                    }
                    else if (numeber % 3==0 && numeber % 2 != 0)
                    {
                        code = (char)('a' + (char)(numeber % 26));
                    }
                    else
                    {
                        code = (char)('A' + (char)(numeber % 26));
                    }
                    sn += "<br />"+code.ToString() + "<br />";            }
                Response.Write(sn);
      

  6.   


    因为你写的 for 循环有问题 
      

  7.   

      Random ran = new Random();  加随机种子
      

  8.   

     Application.Lock();
     sn += strList[ran.Next(0, 61)];
     Application.UnLock(); 这样写试一下
      

  9.   

    我拷你的代码运行 并没有出现重复的现象~ 
    变量的声明最好写在外面 
    不然就重复声明了 100次    string html = string.Empty;
                string core = "q,w,e,r,t,y,u,i,o,p,a,s,f,g,h,j,k,l,z,x,c,v,b,n,m,Q,W,E,R,T,Y,U,I,O,P,A,S,D,F,G,H,J,K,L,Z,X,C,V,B,N,M,0,1,2,3,4,5,6,7,8,9";
                string[] strList = core.Split(',');
                string sn = string.Empty;
                Random ran = new Random();
                for (int i = 0; i < 10; i++)
                {
                    for (int j = 0; j < 10; j++)
                    {
                        Application.Lock();
                        sn += strList[ran.Next(0, 61)];
                        Application.UnLock();
                    }
                    //model.Bonus_sn = sn;
                    //bonus.Add(model);
                    html += sn + "<br/>";
                }
                Response.Write(html);