如何可以产生十个不同的数字或字母?

解决方案 »

  1.   

    用"洗牌算法"
    把源字符放到一个Collection中
    0和一个Collection的Count间取随机数,然后用Collection的最后一位替换到刚才随机数索引中的位置,
    重复10次上面的操作
      

  2.   

    少说一句,替换后,删除Collection的最后一个元素
      

  3.   

    private const string Source = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
            private void button1_Click(object sender, EventArgs e)
            {
                char[] chars = Source.ToCharArray();
                char[] result = new char[10];
                int len=chars.Length;
                Random random = new Random();
                for (int i = 0; i < 10; i++)
                {
                    int pos = random.Next(len);
                    result[i] = chars[pos];
                    chars[pos] = chars[--len];
                }
                this.textBox1.Text = new string(result);
             }