for (int j = 0; j < 50; j++)
{
int[] pic = RadomNumber(piccount, 3);
int[] txt = RadomNumber(txtcount, 3);
if (this.gridview1.Rows[j].Cells[3].Text.ToString() == "图片题")
{
for (int i = 0; i <=2;i++)
{
dt.Rows.Add(dr1[pic[i]].ItemArray);
dt.AcceptChanges();
}
}
if (this.gridview1.Rows[j].Cells[3].Text.ToString() == "文字题")
{
for (int i = 0; i <= 2; i++)
{
dt.Rows.Add(dr2[txt[i]].ItemArray);
dt.AcceptChanges();
}
}
}
this.GridView2.DataSource = dt;
this.GridView2.DataBind();
RadomNumber(int maxlength,int wantlength)是我编写生成随机不重复数组的函数。这段代码运行后gridview2里面的数据都是重复的?why?
{
int[] pic = RadomNumber(piccount, 3);
int[] txt = RadomNumber(txtcount, 3);
if (this.gridview1.Rows[j].Cells[3].Text.ToString() == "图片题")
{
for (int i = 0; i <=2;i++)
{
dt.Rows.Add(dr1[pic[i]].ItemArray);
dt.AcceptChanges();
}
}
if (this.gridview1.Rows[j].Cells[3].Text.ToString() == "文字题")
{
for (int i = 0; i <= 2; i++)
{
dt.Rows.Add(dr2[txt[i]].ItemArray);
dt.AcceptChanges();
}
}
}
this.GridView2.DataSource = dt;
this.GridView2.DataBind();
RadomNumber(int maxlength,int wantlength)是我编写生成随机不重复数组的函数。这段代码运行后gridview2里面的数据都是重复的?why?
你Sleep(10)后结果就不一样了
list.Add(rand .Next(最小值,最大值));
protected int[] RadomNumber(int maxlength, int wantlength)
{ int[] index = new int[maxlength]; //0-i的连续数组
int[] result = new int[wantlength]; //结果输出的数组
int size = maxlength; //连续数组的索引
Random rad = new Random(); //随机变量
for (int j = 0; j < maxlength; j++)
{
index[j] = j; //给连续数组赋值
}
for (int k = 0; k < wantlength; k++)
{
int x = rad.Next(0, size); //x=0-i之间的随机数
result[k] = index[x]; //把第x个数字赋值给输出数组的第k个
index[x] = index[size - 1]; //把最后一个数字覆盖掉第x个数字
size--; //size减一 }
return result; }
#endregion