马上加入IBC程序猿 各种源码随意下,各种教程随便看! 注册 每日签到 加入编程讨论群

C#教程 ASP.NET教程 C#视频教程程序源码享受不尽 C#技术求助 ASP.NET技术求助

【源码下载】 社群合作 申请版主 程序开发 【远程协助】 每天乐一乐 每日签到 【承接外包项目】 面试-葵花宝典下载

官方一群:

官方二群:

数组元素随机排序的问题

  [复制链接]
查看7923 | 回复6 | 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];

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

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

RandKey=ran.Next(你数组的count);
this.txt3.text=你数组[RandKey];
C#论坛 www.ibcibc.com IBC编程社区
C#
C#论坛
IBC编程社区
高富帅小小罗 | 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[index];
            t1.Text = a;

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

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

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

            int index4 = random.Next(0, 4);
            String a4 = date[index4];
            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[index4];
data.removeAt(index4);
             t5.Text = a4;
C#论坛 www.ibcibc.com IBC编程社区
C#
C#论坛
IBC编程社区
高富帅小小罗 | 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[index];
            data.removeAt(index);

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

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

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

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


这样子吗?
ibcadmin | 2014-12-1 21:27:30 | 显示全部楼层
是的
C#论坛 www.ibcibc.com IBC编程社区
C#
C#论坛
IBC编程社区
*滑块验证:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则