C#中随机分组相关Test
2016-05-26 11:41
513 查看
//随机分组相关
//结合List的remove()方法//及Random.next() 动态的取出新的List索引实现随机分组
//结合List的remove()方法//及Random.next() 动态的取出新的List索引实现随机分组
//
<pre name="code" class="csharp"> //Test 随机分组 [HttpPost] public ActionResult RandomsGroupsStu(int totalStuNum, int groupNum) { //totalStuNum 总人数 //groupNum 每组人数 int groupClub = 0; //组数 int groupNumTemp = totalStuNum / groupNum; int groupTemp = totalStuNum % groupNum; //多余的人数 if (groupTemp == 0) groupClub = groupNumTemp; else groupClub = groupNumTemp + 1; //多余人数单独成组 // List<int> tempList = new List<int>();//List用于动态Remove索引 List<StuArrModel> StuInfoList = new List<StuArrModel>();//学生基本信息List //构造数据/用于Test for (int i = 0; i < totalStuNum; i++) { StuArrModel stuModel = new StuArrModel();//学生基本信息构造类 stuModel.StuID = "No" + Convert.ToString(i + 1); stuModel.StuName = "A" + Convert.ToString(i + 1); StuInfoList.Add(stuModel); tempList.Add(i); } string[] StuIDArr = new string[groupClub]; string[] StuNameArr = new string[groupClub]; for (int j = 0; j < groupClub; j++) { for (int t = 0; t < groupNum; t++) { if (tempList.Count == 0) break; int value = tempList[new Random((int)DateTime.Now.Ticks).Next(0, tempList.Count)];//(0-tempList.count)间的随机数 tempList.Remove(value); //动态移除 StuIDArr[j] += StuInfoList[value].StuID + "@"; //StuNameArr[j] += StuInfoList[value].StuName + "@"; } StuIDArr[j] = StuIDArr[j].Substring(0, StuIDArr[j].Length - 1); } return Json(StuIDArr, JsonRequestBehavior.AllowGet); }
相关文章推荐
- c#调用COM组件
- C#实现把指定数据写入串口
- C#动态创建button的方法
- C#中抽象方法与虚拟方法的区别
- c#中虚函数的相关使用方法
- C#实现给图片加水印的方法
- C#使用加边法计算行列式的值
- C#实现多线程的同步方法实例分析
- C#中尾递归的使用、优化及编译器优化
- C#中的delegate委托类型基本学习教程
- C#实现子窗体与父窗体通信方法实例总结
- C#通用邮件发送类分享
- 举例讲解C#中自动实现的属性
- C#中this的用法集锦
- C#数据结构之顺序表(SeqList)实例详解
- C#.NET获取拨号连接的宽带连接方法
- C#异步绑定数据实现方法
- C#实现AddRange为数组添加多个元素的方法
- C#中Equality和Identity浅析
- C#比较二个数组并找出相同或不同元素的方法