int i = 1;//抽奖人员编号,所有人员部分区域
Random sjs = new Random(DateTime.Now.Year + DateTime.Now.Month + DateTime.Now.Day +
DateTime.Now.Hour + DateTime.Now.Minute + DateTime.Now.Second +
DateTime.Now.Millisecond);
/*
* var sxsj = from aa in nzywda.ygcjs where aa.cjdd==cjdd && aa.zt==null && aa.nd==nd && aa.bz==null
select aa; //对每次都重新分配随机号,随机性更大一些
int rs = sxsj.Count();
// 分配随机号码
if (rs > 0)
{
foreach (var kk in sxsj)
{
kk.sjh = sjs.Next(1, rs + 1);
}
nzywda.SaveChanges();
}
*/
int rs = cxgxcsh.Count();
HashSet<int> uniqueNumbers = new HashSet<int>();//里面的元素不能重复
while (uniqueNumbers.Count < rs)
{
int number = sjs.Next(1, 10*rs + 1);
uniqueNumbers.Add(number);
}
int[] bcfsjs = new int[rs];//不重复随机数数组
int j = 0;
foreach (var number in uniqueNumbers)
{
bcfsjs[j] = number;
j++;
}
if (rs > 0)
{
foreach (var kk in cxgxcsh)
{
kk.zt = null;
kk.bz = null;
kk.bh = i;
kk.sjh = bcfsjs[i - 1];
i++;
// kk.sjh = sjs.Next(1, rs + 1);
//不重复随机数
}
}
nzywda.SaveChanges();
System.Threading.Thread.Sleep(200);
//一次性产生随机号更快更科学,后续对sjh排序即可
|