问题描述
我想用一个for循环取0到a.count之间的随机数(a是数组).用数组b存取到的随机数for(inti=0;i<a.count;i++){取随机数;if(取到不重复的随机数){执行别的操作;如果无法满足一些条件,也需要随机数重取;}else{删除随机数,再取.}}比如:for(i=0;i<a.Count;i++){Randomrand=newRandom();inttemp=rand.Next(a.Count-1);//随机生成一个在在数组a大小范围内的非负数m=(int)a[temp];//用以上的随机数temp为索引,得到数组a[temp]的值,我们设定为:mb[i]=m;//将m赋值给bif(取到不重复的随机数){DataRowdr;dr=ds.Tables["student"].Rows[b[i]];SqlCommandsqlcommand=newSqlCommand("updatestudentsetstu_group=@sgroupwherestu_id=@stu_id",conn1);sqlcommand.Parameters.Add(newSqlParameter("@stu_id",SqlDbType.Char,12));sqlcommand.Parameters["@stu_id"].Value=dr["stu_id"].ToString();if(i%j==0&&jj<=sgroup)//j中记录了每组教师的人数,jj记录组别{mm=jj;jj=jj+1;}sqlcommand.Parameters.Add(newSqlParameter("@sgroup",SqlDbType.Int,4));sqlcommand.Parameters["@sgroup"].Value=Convert.ToString(mm);DataSetdset=newDataSet();SqlDataAdaptersqldd=newSqlDataAdapter("select*fromstudents,teachert,workswwheres.stu_works=w.works_titleandw.works_state='已选定'andt.tea_id=w.tea_idands.stu_id='"+dr["stu_id"].ToString()+"'andt.rejoin_group='"+mm+"'",conn1);sqldd.Fill(dset);intsum=dset.Tables[0].Rows.Count;if(sum==0){sqlcommand.ExecuteNonQuery();}else//(如果有一些条件不满足){从数组a中删除值为m的元素,需要重新取;}}怎么做呢?
解决方案
解决方案二:
不知道。帮定。