开发项目时,遇到一个这样的功能场景,需要对一个数组中所有的元素进行随机的排序。
该应该场景可以拓展到知道有限的参会人员抽奖、随机抽奖(注册用户的前XX名幸运观众)等。
针对此功能的开发:(比如0-49这50个元素值进行随机排序)
int[] c_pos=new int[50];
for (int j = 0; j < c_pos.Length; j++) // 初始化 ,将数组内元素全部赋值(0……49)
{
c_pos[j] = j;
}
//将随机将元素 0-49 排序乱序排列
Random rand1 = new Random();
for (int k = 0; k < c_pos.Length; k++)
{
int x, y, t;
x = rand1.Next(0, c_pos.Length);
do
{
y = rand1.Next(0, c_pos.Length);
} while (y == x);
t = c_pos[x];
c_pos[x] = c_pos[y];
c_pos[y] = t;
}