高富帅小小罗 发表于 2014-11-29 21:31:33

数组元素随机排序的问题

本帖最后由 高富帅小小罗 于 2014-11-30 12:12 编辑

我自定义了一个string类型数组{"a","b","c"},然后想随机赋值排列到textbox1,textbox2,textbox3.请问这个怎么写?具体点,新手。。。

高富帅小小罗 发表于 2014-11-30 12:13:29

有没有人可以回答一下

ibcadmin 发表于 2014-11-30 17:55:10

定义一个 Random rd = new Random();随机数

Random ran=new Random();
int RandKey=ran.Next(你数组的count);

this.txt1.text=你数组;

RandKey=ran.Next(你数组的count);
this.txt1.text=你数组;

RandKey=ran.Next(你数组的count);
this.txt2.text=你数组;

RandKey=ran.Next(你数组的count);
this.txt3.text=你数组;

高富帅小小罗 发表于 2014-11-30 21:47:20

ibcadmin 发表于 2014-11-30 17:55
定义一个 Random rd = new Random();随机数

Random ran=new Random();


这样写,有可能t1=t2吧?我想要的是不重复的,就是随机排序。
String[] date = { "小罗", "水黄", "水饭", "菊明", "坑坚" };
            Random random = new Random();
            int index = random.Next(0, 4);
            String a = date;
            t1.Text = a;

            int index1 = random.Next(0, 4);
            String a1 = date;
            t2.Text = a1;

            int index2 = random.Next(0, 4);
            String a2 = date;
            t3.Text = a2;

            int index3 = random.Next(0, 4);
            String a3 = date;
            t4.Text = a3;

            int index4 = random.Next(0, 4);
            String a4 = date;
            t5.Text = a4;

这样就是有可能会重复的。求不重复的办法

ibcadmin 发表于 2014-12-1 09:14:04

那就每次减少你的数组
random.Next(0, 4);这个4不要写死换成date.count

然后 每执行一个index时就把data中移除索引

int index4 = random.Next(0, date.count);
             String a4 = date;
data.removeAt(index4);
             t5.Text = a4;

高富帅小小罗 发表于 2014-12-1 19:35:41

ibcadmin 发表于 2014-12-1 09:14
那就每次减少你的数组
random.Next(0, 4);这个4不要写死换成date.count



String[] date = { "小罗", "水黄", "水饭", "菊明", "坑坚" };
            Random random = new Random();
            int index = random.Next(0, date.count);
            t1.Text = date;
            data.removeAt(index);

            int index1 = random.Next(0, date.count);
            t2.Text = date;
            data.removeAt(index1);

            int index2 = random.Next(0, date.count);
            t3.Text = date;
            data.removeAt(index2);

            int index3 = random.Next(0, date.count);
            t4.Text = date;
            data.removeAt(index3);

            int index4 = random.Next(0, date.count);
            t5.Text = date;


这样子吗?

ibcadmin 发表于 2014-12-1 21:27:30

是的
页: [1]
查看完整版本: 数组元素随机排序的问题